Заданное приведение является недопустимым, задание значения двухмерному массиву

Я пытаюсь скопировать значения таблицы в двухмерный массив:

int[,] arr = new int[,] { { }, { } };
for (int i = 0; i < numericUpDown1.Value; i++)
{
    for(int j = 0; j < numericUpDown2.Value; j++)
    {
        Console.WriteLine(i + " " + j);
        arr[i, j] = (int)dataGridView1.Rows[i].Cells[j].Value;
    }
}

Вот как выглядит интерфейс:

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

Но показывает ошибку Заданное приведение является недопустимым.

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

Что делать?


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

Автор решения: aepot

В ячейке в данном конкретном случае string, а не int.

int rows = dataGridView1.RowCount;
int cols = dataGridView1.ColumnCount;
int[,] arr = new int[rows, cols];
for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < cols; j++)
    {
        Debug.WriteLine(i + " " + j);
        if (int.TryParse(dataGridView1.Rows[i].Cells[j].Value.ToString(), out int value)
        {
            arr[i, j] = value;
        }
    }
}
→ Ссылка