2012-10-06 189 views

回答

23

string[,]multidimensional array

multidimensional array

string[][]Jagged array

交錯數組是數組,其元素是數組。 鋸齒狀陣列的元素可以具有不同的尺寸和大小。鋸齒狀的 數組有時被稱爲「數組陣列」。「

Jagged array

6

string[,] - Multidimensional Arrary(矩形陣列)

多維可以具有多於一個維度。以下示例顯示如何創建兩行和兩列的二維數組。

聲明:

string[,] contacts; 

實例化:

string[,] contacts = new string[2,2]; 

初始化:

string[,] contacts = new string[2, 2] { {"John Doe","[email protected]"}, {"Jane Doe","[email protected]"} }; 



string[ ][ ] - Jagged Array(陣列陣列)

鋸齒陣列是一個數組,其元素是數組。鋸齒狀陣列的元素可以具有不同的尺寸和大小。鋸齒陣列有時被稱爲「陣列陣列」。

鋸齒陣列可以有效地存儲許多不同長度的行。任何類型的數據,參考或價值都可以使用。索引鋸齒狀陣列速度很快。分配它們有點慢。

交錯數組比多維數組

宣言更快:

string[][] contacts; 

實例化:

string[][] contacts = new string[2][]; 
for (int i = 0; i < contacts.Length; i++) 
{ 
    contacts[i] = new string[3]; 
} 

初始化:

string[][] contacts = new string[2][] { new string[] {"[email protected]","[email protected]"}, new string[] {"[email protected]","[email protected]","[email protected]"} }; 
+0

看看我如何編輯你的答案,你將學習如何插入鏈接... – aleroot

4

string[][]作爲jagged array

交錯數組是數組,其元素是陣列。交錯數組的元素可以具有不同的尺寸和大小。鋸齒狀排列有時稱爲「陣列陣列」。

string[,]multidimensional array其中

陣列可以具有多於一個維度

1

string[][](鐵血陣列)是陣列的陣列具有固定數量的行和列的可變長度而string[,](矩形陣列)是具有固定行數和列數的矩陣。這是一個很好的討論over there差異

2

兩個方面很重要:

內存明智:

[N,M] - 保存爲一長串的記憶,彷彿這是[ n * m] [n] [m] - 保存爲大小爲n的簡單數組,其中每個元素都是指向大小爲m的數組的指針。

接入明智:

[N,M] - 要訪問單元I,J真正發生的是,它需要的[n * m個]數組的指針和由N *寬度抵消它+ m,然後訪問該值。 [n] [m] - 要訪問單元格i,j,您只需訪問索引n(偏移量爲#1)處的子數組指針,然後訪問索引爲m(偏移量爲#1)的子數組。

[] []在兩方面都較好。訪問效率更高,內存更靈活。 此外,您可以只訪問一行並更有效地處理它,因爲您不對該行中的每個單元格執行完整的多維訪問。

然而,有一個[,]的優點:你總是知道矩陣的寬度是固定的。使用[] [],每個子數組可以有不同的長度,甚至可以爲空。這可以被認爲是一種優勢,但有時候反過來也是有用的。