Вывести динамическую Inline клавиатуру в столбец в телеграм боте

помогите сделать Inline клавиатуру в телеграмм боте, что бы все кнопки были в столбец. Я сделал, но вывод идёт в строку.

    private static InlineKeyboardButton[][] CategoryKeyboard(string[] stringArray)
    {
        var keyboardInline = new InlineKeyboardButton[1][];
        var keyboardButtons = new InlineKeyboardButton[stringArray.Length];
        for (var i = 0; i < stringArray.Length; i++)
        {
            keyboardButtons[i] = new InlineKeyboardButton
            {
                Text = stringArray[i]
            };
        }
        keyboardInline[0] = keyboardButtons;
        return keyboardInline;
    }

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

Автор решения: A K

Как-то так делаю:

private static InlineKeyboardButton[][] CategoryKeyboard(string[] stringArray)
{
    var rows = new List<InlineKeyboardButton[]>();

    for (var i = 0; i < stringArray.Length; i++)
    {
        rows.Add(
            new[]
            {
                InlineKeyboardButton.WithCallbackData("buttonTile", $"Command={stringArray[i]}"),
            },
        );
    }
    
    return rows.ToArray();
}

PS По памяти, могут быть небольшие ошибки - нет под рукой студии.


Update

Вообще, в этой разметке нет ничего сакрального. Вы можете потренироваться на обычном int[][] чтобы убедиться что всё делаете правильно - это проще, чем запускать отладку бота.

Вот:

void Main()
{
    var arr = CategoryKeyboard(new[] {1,2,3,4});
    arr.Dump();
}

// Define other methods and classes here


private static int[][] CategoryKeyboard(int[] nums)
{
    var rows = new List<int[]>();
    
    for (int i = 0; i < nums.Length; i++)
    {
        rows.Add(new int[] {nums[i]});
    }
    
    return rows.ToArray();
}

введите сюда описание изображения

→ Ссылка