1
private void button12_Click(object sender, EventArgs e)
{
    int a = Convert.ToInt32(textBox1.Text);
    string[] numbers = textBox3.Text.Split(' ');

    if (a * a > numbers.Length)
    {
        MessageBox.Show("Длина массива не соответсвует введенному!");
    }

    _array = new int[a, a];

    for (int i = 0; i < numbers.Length; i++)
    {
        for (int j = 0; j < numbers.Length; j++)
        {
            _array[i, j] = int.Parse(numbers[i]);
            label13.Text += Convert.ToString(numbers[i]) + "  ";
        }
        label13.Text += "\n";
    }

Это исключение, которое мне выбрасывает, когда я пытаюсь пройтись по длине string[] numbers:

System.IndexOutOfRangeException: "Индекс находился вне границ массива."

Ввести, чтобы, например, (1, 2) вводилось как _array[0,0] _array[0,1]

qwerty
  • 35
  • 5
  • 1
    Смотрите, какие штуки можно творить в WPF, в WinForms наверное тоже можно, но я бы не рискнул за полтора часа написать подобное. Показано, как можно вводить матрицу в DataGrid (аналог DataGridView в WinForms). – aepot Jun 25 '20 at 13:49
  • Была бы моя воля, но сказали сделать так...Спасибо за наводку буду рассматривать приложенную ссылку – qwerty Jun 25 '20 at 13:53

1 Answers1

2
        for (int i = 0; i < numbers.Length; i++)
        {
          _array[i / a, i % a] = int.Parse(numbers[i]);
          label13.Text += numbers[i] + "  ";
        }
        label13.Text += "\n";            
  • Очень благодарю. Но не могли бы вы мне объяснить вот этот момент _array[i / a, i % a] ? – qwerty Jun 25 '20 at 13:44
  • @qwerty i / a - вычисление номера строки двумерного массива по индексу одномерного через целочисленное деление. i % a - аналогично для номера столбца. –  Jun 25 '20 at 13:47