鋸齒狀陣列
鋸齒狀陣列是代替基本型別的陣列,包含陣列(或其他集合)。它就像一個陣列陣列 - 每個陣列元素包含另一個陣列。
它們類似於多維陣列,但略有不同 - 因為多維陣列僅限於固定數量的行和列,使用鋸齒狀陣列,每行可以有不同數量的列。
宣告鋸齒狀陣列
例如,宣告一個包含 8 列的鋸齒狀陣列:
int[][] a = new int[8][];
第二個 []
初始化沒有數字。要初始化子陣列,你需要單獨執行此操作:
for (int i = 0; i < a.length; i++)
{
a[i] = new int[10];
}
獲取/設定值
現在,獲得一個子陣列很容易。讓我們列印 a
第 3 列的所有數字:
for (int i = 0; i < a[2].length; i++)
{
Console.WriteLine(a[2][i]);
}
獲得特定價值:
a[<row_number>][<column_number>]
設定特定值:
a[<row_number>][<column_number>] = <value>
記住 :始終建議使用鋸齒狀陣列(陣列陣列)而不是多維陣列(矩陣)。它使用起來更快,更安全。
關於括號順序的註釋
考慮一個 int
的一維陣列的五維陣列的三維陣列。這是用 C#編寫的:
int[,,][,,,,][] arr = new int[8, 10, 12][,,,,][];
在 CLR 型別系統中,括號排序的約定是相反的,因此對於上面的 arr
例項,我們有:
arr.GetType().ToString() == "System.Int32[][,,,,][,,]"
同樣地:
typeof(int[,,][,,,,][]).ToString() == "System.Int32[][,,,,][,,]"