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;
                    }
                }
            }
        }
    }

После запуска таблица не заполняется: dataGridView Не совсем понимаю, в чём ошибка. Скорее всего неправильно строю матрицу или указываю индексы потому что если переписываю код так:

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];
            }
        }

То возникает ошибка:

error


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