我认为这可能是一个非常简单的问题,但我还无法弄清楚。如果我有一个像这样的二维数组:
int[,] array = new int[2,3] { {1, 2, 3}, {4, 5, 6} };
用嵌套的 foreach 语句遍历数组的每个维度的最佳方法是什么?
如果要遍历数组中的每个项目,就好像它是一个扁平数组一样,可以执行以下操作:
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]); } }