Как инициализировать зубчатый массив из List?

Сабж.
Вот не знаю правильно ли я вопрос задал, возможно он звучит по другому, если не правильно то исправьте пожалуйста.
Есть такой код для вывода кнопок в телеграмм боте:

// using Telegram.Bot.Types.ReplyMarkups;

InlineKeyboardMarkup inlineKeyboard = new(new []
    {
        // first row
        new []
        {
            InlineKeyboardButton.WithCallbackData(text: "1.1", callbackData: "11"),
        },
        // second row
        new []
        {
            InlineKeyboardButton.WithCallbackData(text: "2.1", callbackData: "21"),
        },
    });

Message sentMessage = await botClient.SendTextMessageAsync(
    chatId: chatId,
    text: "A message with an inline keyboard markup",
    replyMarkup: inlineKeyboard,
    cancellationToken: cancellationToken);

Мне нужно отправить в конструктор количество массивов равное List.Count(). Я создаю зубчатый массив

 InlineKeyboardButton[][] test = new InlineKeyboardButton[tokens.Count()][];

Но дальше не понимаю как его заполнить. Пытаюсь так но получаю ошибку

for (int i = 0; i < test.Count(); i++)
{
 test[i][0] = InlineKeyboardButton.WithCallbackData(text: tokens[i].Name, callbackData: tokens[i].Name);
}



System.NullReferenceException: "Object reference not set to an instance of an object."

Ответы (1 шт):

Автор решения: Andrew

Как инициализировать зубчатый массив из List?

var someList = new List<List<int>>();

это инициализирует лист листов.

Мне нужно отправить в конструктор количество массивов равное List.Count(). Я создаю зубчатый массив

var b = someList.Select( a => a.toArray() ).toArray();

превратит из List<List<int>> в массив массивов интов

→ Ссылка