C# 多維陣列
多維陣列
在上一章中,您學習了陣列,也稱為一維陣列。陣列非常有用,您將在 C# 程式設計中大量使用它們。然而,如果您想以表格形式儲存資料,例如帶有行和列的表,您需要熟悉多維陣列。
多維陣列基本上是陣列的陣列。
陣列可以有任意數量的維度。最常見的是二維陣列(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]); // 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]);
}
}