Как проверить что в конце стоят знаки и поставить запятую?

В калькуляторе я сделал запятую и она должна ставиться если в конце TextBox нет символов "+-*/,", только вот у меня не получается это сделать, так как он проверяет не всё сразу, а по одному символу и выполняет код дальше, из-за чего у меня ставится не одна запятая, а несколько. Как сделать так, чтобы всё это правильно выполнялось и ставилась только одна запятая?

private void comma_button_Click(object sender, EventArgs e)
{
    char[] symbols = { '+', '-', '*', '/', ',' };

    foreach (char c in symbols)
    {
        if (!equal_textbox.Text.EndsWith(c))
        {
            equal_textbox.Text += ",";
        }
    }
}

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

Автор решения: Антон К.

Вы проходите по тексту столько раз, сколько символов в строке symbols. затем каждый раз проверяете, оканчивается ли строка на каждый из них, если нет, то ставится запятая.

Можно сделать проще, введите флаг, состояние которого изменяется при нажатии на кнопку с символом и проверяйте Его состояние. Флаг - глобальная приватная переменная типа bool (по умочанию false) сбрасывайте его как только нажали сброс или равно.

→ Ссылка
Автор решения: bubadev

У вас неправильная логика. Вы идете по символам, сравнивая их с последним в строке.

Логика должна быть наоборот. Возьмите список символов и проверьте, встречается ли там последний символ входящей строки. Это работает:

private void comma_button_Click(object sender, EventArgs e)
{
    char[] symbols = { '+', '-', '*', '/', ',' };

    if(!symbols.Contains(equal_textbox.Text.Last()))
    {
        equal_textbox.Text += ",";
    }
}
→ Ссылка