Как инициализировать зубчатый массив из 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>> в массив массивов интов