多元數組使用多個參數的索引器進行通路。
且每個參數的範圍不會随着其他參數改變。
可以很好的作為圖像像素這種方方正正的東西的容器。
聲明
多元數組的聲明,相較于普通數組,差別在于在中括号加逗号分隔。
聲明類型僅添加逗号,指派時的建構使用逗号隔開每個次元的長度。
通路
多元數組的通路通過索引器,索引間使用逗号分隔。
多元數組不支援索引類和範圍類。
int a = arr[1, 2];
arr[2, 0] = a;
周遊
多元數組通過GetLength方法擷取每個次元上的長度。以此進行for循環的條件判斷。
而foreach循環不受影響,依然能像普通數組一樣周遊。
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
arr[i, j] = i * j;
}
}
foreach (var item in arr)
{
Console.WriteLine(item);
}
差別
多元數組直接管理元素,而數組的數組管理的是一個數組。
而這個數組還需要你自己親手指派。最大的差別就展現在給數組的數組指派上。
你可以給他指派奇怪的值。例如,長度不同的數組,同一個數組,null。
int[][] arr2 = new int[6][];
int[] arr3 = new int[3];
for (int i = 0; i < arr2.Length; i++)
{
arr2[i] = arr3;
}
arr2[0][1] = 16;
Console.WriteLine(arr2[3][1]);
多元數組免去了這一步,可以保證建立的數組是方方正正的。