c# windows forms вывод двумерного массива в datagridview
Нужно вывести двумерный массив в datagridview
public partial class Form1 : Form
{
const int n = 6;
double[,] matrix = new double[n, n];
double[,] newMatrix = new double[n, n];
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
buildingMatrix();
dataGridView1.RowCount = matrix.GetLength(0);
dataGridView1.ColumnCount = matrix.GetLength(1);
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
dataGridView1.Rows[i].Cells[j].Value = matrix[i, j];
}
}
}
// формируем матрицу не выводя в виджет
public void buildingMatrix()
{
for (int i = 0; i <= n - 1; i++)
{
if (i == 0)
{
double temp1 = 1;
for (int j = 0; j <= n - 1; j++)
{
matrix[i, j] = temp1;
temp1 += 1;
}
}
else if (i == 1)
{
double temp2 = 2;
for (int j = 0; j <= n - 1; j++)
{
if (j == 5)
{
matrix[i, j] = 5;
} else
{
matrix[i, j] = temp2;
temp2 = 0;
}
}
}
else if (i == 2)
{
double temp3 = 3;
for (int j = 0; j <= n - 1; j++)
{
if (j == 5)
{
matrix[i, j] = n - 2;
}
else
{
matrix[i, j] = temp3;
temp3 = 0;
}
}
}
else if (i == 3)
{
for (int j = 0; j <= n - 1; j++)
{
matrix[i, j] = 0;
}
}
else if (i == 4)
{
double temp4 = n - 1;
for (int j = 0; j <= n - 1; j++)
{
if (j == 5)
{
matrix[i, j] = 2;
}
else
{
matrix[i, j] = temp4;
temp4 = 0;
}
}
}
else if (i == 5)
{
for (int j = 0; j <= n - 1; j++)
{
switch (j)
{
case 5:
matrix[i, j] = 1;
break;
case 4:
matrix[i, j] = 2;
break;
case 0:
matrix[i, j] = n;
break;
case 1:
matrix[i, j] = n - 1;
break;
case 2:
matrix[i, j] = n - 2;
break;
case 3:
matrix[i, j] = n - 3;
break;
}
}
}
}
}
После запуска таблица не заполняется:
Не совсем понимаю, в чём ошибка. Скорее всего неправильно строю матрицу или указываю индексы
потому что если переписываю код так:
dataGridView1.RowCount = matrix.GetLength(0);
dataGridView1.ColumnCount = matrix.GetLength(1);
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
dataGridView1.Rows[i].Cells[j].Value = matrix[i, j];
}
}
То возникает ошибка:
