鋸齒狀陣列

鋸齒狀陣列是代替基本型別的陣列,包含陣列(或其他集合)。它就像一個陣列陣列 - 每個陣列元素包含另一個陣列。

它們類似於多維陣列,但略有不同 - 因為多維陣列僅限於固定數量的行和列,使用鋸齒狀陣列,每行可以有不同數量的列。

宣告鋸齒狀陣列

例如,宣告一個包含 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[][,,,,][,,]"