Как я могу передать несколько разных чисел (целых) в массив, используя одно текстовое поле?C # - PullRequest
0 голосов
/ 13 февраля 2019

В основном я хочу заполнить массив целыми числами и ограничить его 20 элементами, используя одно текстовое поле и кнопку в ac # GUI.Я попытался использовать цикл for, и он просто заполняет все 20 подпрограмм первым номером, который я передал.Я попытался оператор break, чтобы выйти из цикла, но это не работает.Вот мой код:

    int theCount = 0;
    private void btnEnter_Click(object sender, EventArgs e)
    {
        int[] numbers = new int[20];

        int num = 0;

        for (int i = 0; i < 20; i++)
        {
            if (int.TryParse(txtBxStats.Text, out num);)
            {
                numbers[i] = num;
                theCount++;
                break;
            }
        }            
        lblNumCount.Text = $"{theCount} / 20";

    }

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Если вы пытаетесь делать это при каждом нажатии кнопки, ваш код должен выглядеть примерно так, как показано ниже.Я переместил массив за пределы события click (на уровне класса), и вам не нужен цикл for.

private int theCount = 0;
private int[] numbers = new int[20];

private void btnEnter_Click(object sender, EventArgs e)
{
    int num = 0;

    if (theCount < 20 && int.TryParse(txtBxStats.Text, out num))
    {
        numbers[theCount] = num;
        theCount++;                
    }

    lblNumCount.Text = $"{theCount} / 20";
}
0 голосов
/ 13 февраля 2019

Если вы намерены добавлять число в текстовое поле при каждом нажатии кнопки, то нажатие кнопки должно быть примерно таким, как показано ниже;

    int theCount = 0;
    int[] numbers = new int[20];

    private void btnEnter_Click(object sender, EventArgs e)
    {
        int numToAdd;

        if (int.TryParse(txtNumToAdd.Text, out numToAdd))
        {
            if (theCount < 20)
            {
                theCount++;

                numbers[theCount -1] = numToAdd;

                lblNumCount.Text = string.Format("{0} / 20", theCount.ToString());
            }
            else
            {
                MessageBox.Show("You cannot exceed 20 numbers!");
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...