理解鋸齒數組與多維數組
在程式設計中,數組是組織和儲存資料的基本資料結構。 C# 提供兩種類型的陣列:交錯數組和多維數組。了解它們的差異和應用至關重要。
交錯數組與多維數組
鋸齒狀數組相對於多維數組的優勢
鋸齒狀數組提供了多維數組所沒有的彈性。例如,它們允許:
理解Visual Studio 中的紅色蜿蜒線
在Visual Studio中,建立具有第二維規範的 MyClass[][](例如, [20]) 觸發「無效排名說明符」錯誤。這是因為 C# 不支援具有固定子數組大小的鋸齒狀數組。相反,每個子數組必須單獨初始化。
初始自訂鋸齒狀數組
要建立並初始化鋸齒狀數組:
MyClass[][] abc = new MyClass[10][]; for (int i = 0; i < abc.Length; i++) { abc[i] = new MyClass[20]; }
初始化多維數組
一個10行20列的MyClass[,]可以用一行初始化:
MyClass[,] abc = new MyClass[10, 20];
初始化一個複雜的自訂數組
一個MyClass[],可以初始化為如下所示:
MyClass[][,][,] abc = new MyClass[10][,][,]; for (int i = 0; i < abc.Length; i++) { abc[i] = new MyClass[20, 30][,]; for (int j = 0; j < abc[i].GetLength(0); j++) { for (int k = 0; k < abc[i].GetLength(1); k++) { abc[i][j, k] = new MyClass[40, 50]; } } }
效能注意事項
對於鋸齒狀資料組往往比多維數組效能更高。這是因為交錯數組允許非連續的記憶體分配,而多維數組連續儲存所有元素。
以上是C# 中的鋸齒數組與多維數組:我什麼時候應該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!