C# 多维数组
多维数组
在上一章中,您学习了数组,也被称为一维数组。这些非常重要,并且在用 C# 编程时会经常用到。
但是,如果您想将数据以表格形式存储,比如带有行和列的表格,那么您需要熟悉多维数组。
多维数组基本上就是数组的数组。
数组可以有任意数量的维度。最常见的是二维数组(2D)。
二维数组
要创建 2D 数组,请将每个数组添加到其自己的花括号组中,并在方括号内插入逗号 (,
):
实例
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
提示:单个逗号 [,]
指定数组是二维的。三维数组将有两个逗号:int[,,]
。
现在,numbers
是一个数组,其元素包含两个数组。第一个数组元素包含三个元素:1、4 和 2,而第二个数组元素包含 3、6 和 8。为了将其可视化,可以将数组视为带有行和列的表格:

访问二维数组的元素
要访问二维数组的元素,必须指定两个索引:一个用于数组,一个用于该数组内的元素。或者这么说更好,根据表格可视化效果,一个用于行,一个用于列(见下面的例子)。
这条语句访问 numbers
数组第一行(0)和第三列(2)的元素值:
实例
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; Console.WriteLine(numbers[0, 2]); // 输出 2
请记住:数组索引从 0 开始:[0] 是第一个元素。[1] 是第二个元素,依此类推。
更改二维数组的元素
您也可以更改元素的值。
下例将修改第一行(0)和第一列(0)的元素值:
实例
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; numbers[0, 0] = 5; // 将值更改为 5 Console.WriteLine(numbers[0, 0]); // 输出 5 而不是 1
循环遍历二维数组
您可以使用 foreach
循环轻松循环二维数组的元素:
实例
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; foreach (int i in numbers) { Console.WriteLine(i); }
您还可以使用 for 循环。对于多维数组,您需要为数组的每个维度进行一个循环。
另请注意,我们必须使用 GetLength()
而不是 Length
来指定循环应运行的次数:
实例
int[,] numbers = { {1, 4, 2}, {3, 6, 8} }; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers.GetLength(1); j++) { Console.WriteLine(numbers[i, j]); } }