C#使用单个for循环填充2D数组矩阵

时间:2018-11-26 11:58:39

标签: c# arrays for-loop count

我目前正在使用2D阵列。我想用计数填充2D数组。我已经设法使用2个嵌套的for循环来做到这一点。 (这可能是最简单的正确做法?)

//create count
int count = 1;

for (int row = 0; row < matrix.GetLength(0); row++)
{
    for (int col = 0; col < matrix.GetLength(0); col++)
    {
        matrix[row, col] = count++;
    }
}

我只是好奇,是否也可以仅使用一个for循环来填充2D数组?

我想到了一个循环来计算行数。当行到达数组的末尾时,列将增加1。这可以通过使用if,if else和else语句正确吗?

这里有人知道如何进行这项工作吗?

2 个答案:

答案 0 :(得分:5)

你在这里

int[,] matrix = new int[5, 10];     
int row = matrix.GetLength(0);
int col = matrix.GetLength(1);      

for (int i = 0; i < row * col; i++)
{
    matrix[i / col , i % col] = i + 1;
}

https://dotnetfiddle.net/Lv9DvT

答案 1 :(得分:2)

是的,当然可以。

for(int i = 0; i < matrix.GetLength(0) * matrix.GetLength(1); i++)
{
    int row = i / matrix.GetLength(1);
    int column = i % matrix.GetLength(1);

    matrix[row, column] = i;
}

使用NxN阵列。