C# 多维数组


多维数组

在上一章中,您了解了数组,也称为一维数组。这些都很棒,并且您在使用 C# 编程时会经常使用它们。但是,如果您想将数据存储为表格形式,例如具有行和列的表格,则需要熟悉多维数组

多维数组基本上是数组的数组。

数组可以有任意数量的维度。最常见的是二维数组 (2D)。


二维数组

要创建二维数组,请将每个数组添加到其自己的花括号组中,然后插入逗号 (,) 方括号内:

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };

很高兴知道:单个逗号[,]指定数组是二维的。三维数组有两个逗号:int[,,]

numbers现在是一个包含两个数组作为元素的数组。第一个数组元素包含三个元素:1、4 和 2,而第二个数组元素包含 3、6 和 8。为了形象化它,请将数组视为具有行和列的表格:


访问二维数组的元素

要访问二维数组的元素,必须指定两个索引:一个用于数组,另一个用于该数组内的元素。或者更好的是,考虑到表格可视化;一个用于行,一个用于列(参见下面的示例)。

该语句访问元素的值第一行 (0)第三栏 (2)numbers数组:

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]);  // Outputs 2

亲自试一试 »

请记住:数组索引从 0 开始:[0] 是第一个元素。 [1] 是第二个元素,依此类推。


更改二维数组的元素

您还可以更改元素的值。

以下示例将更改中元素的值第一行 (0)第一列 (0):

示例

int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5;  // Change value to 5
Console.WriteLine(numbers[0, 0]); // Outputs 5 instead of 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]); 
  } 
}  

亲自试一试 »