一尘不染

使用嵌套的Foreach语句迭代多维数组

c#

我认为这可能是一个非常简单的问题,但我还无法弄清楚。如果我有一个像这样的二维数组:

int[,] array = new int[2,3] { {1, 2, 3}, {4, 5, 6} };

用嵌套的 foreach 语句遍历数组的每个维度的最佳方法是什么?


阅读 318

收藏
2020-05-19

共1个答案

一尘不染

如果要遍历数组中的每个项目,就好像它是一个扁平数组一样,可以执行以下操作:

foreach (int i in array) {
    Console.Write(i);
}

将打印

123456

如果还希望知道x和y索引,则需要执行以下操作:

for (int x = 0; x < array.GetLength(0); x += 1) {
    for (int y = 0; y < array.GetLength(1); y += 1) {
        Console.Write(array[x, y]);
    }
}

或者,您可以改用锯齿状的数组(数组的数组):

int[][] array = new int[2][] { new int[3] {1, 2, 3}, new int[3] {4, 5, 6} };
foreach (int[] subArray in array) {
    foreach (int i in subArray) {
        Console.Write(i);
    }
}

要么

int[][] array = new int[2][] { new int[3] {1, 2, 3}, new int[3] {4, 5, 6} };
for (int j = 0; j < array.Length; j += 1) {
    for (int k = 0; k < array[j].Length; k += 1) {
        Console.Write(array[j][k]);
    }
}
2020-05-19