Search code examples
c#keyboardtelegramtelegram-bot

create dynamic Keyboard telegram bot in c# , MrRoundRobin API


I want to create custom keyboard in telegram.bot

For example:
We have an array of string that gets from the database or other recurses how we can push data from the array to InlineKeyboardMarkup in for loop or function

//array  of Button
string[] ButtonItem= new string[] { "one", "two", "three", "Four" };

//function or solution to create keyboard like this 
var keyboard = new InlineKeyboardMarkup(new[]
    {
        new[] 
        {
            new InlineKeyboardButton("one"),
            new InlineKeyboardButton("two"),
        },
        new[] 
        {
            new InlineKeyboardButton("three"),
            new InlineKeyboardButton("Four"),
        }
    });

Solution

  • You could use a separate function to get an array of InlineKeyboardButton

    private static InlineKeyboardButton[][] GetInlineKeyboard(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],
                CallbackData = "Some Callback Data",
            };
        }
        keyboardInline[0] = keyboardButtons;
        return keyboardInline;
    }
    

    And then call the function:

    var buttonItem = new[] { "one", "two", "three", "Four" };
    var keyboardMarkup = new InlineKeyboardMarkup(GetInlineKeyboard(buttonItem));