可能重複:
What is differences between Multidimensional array and Array of Arrays in C#?C#陣列 - 字符串[] []對字符串[,]
任何人都可以解釋我string[][]
和string[,]
之間的區別?
可能重複:
What is differences between Multidimensional array and Array of Arrays in C#?C#陣列 - 字符串[] []對字符串[,]
任何人都可以解釋我string[][]
和string[,]
之間的區別?
string[,]
是multidimensional array。
string[][]
是Jagged array:
交錯數組是數組,其元素是數組。 鋸齒狀陣列的元素可以具有不同的尺寸和大小。鋸齒狀的 數組有時被稱爲「數組陣列」。「
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]"} };
string[][]
作爲jagged array
交錯數組是數組,其元素是陣列。交錯數組的元素可以具有不同的尺寸和大小。鋸齒狀排列有時稱爲「陣列陣列」。
而string[,]
是multidimensional array其中
陣列可以具有多於一個維度
string[][]
(鐵血陣列)是陣列的陣列具有固定數量的行和列的可變長度而string[,]
(矩形陣列)是具有固定行數和列數的矩陣。這是一個很好的討論over there差異
兩個方面很重要:
內存明智:
[N,M] - 保存爲一長串的記憶,彷彿這是[ n * m] [n] [m] - 保存爲大小爲n的簡單數組,其中每個元素都是指向大小爲m的數組的指針。
接入明智:
[N,M] - 要訪問單元I,J真正發生的是,它需要的[n * m個]數組的指針和由N *寬度抵消它+ m,然後訪問該值。 [n] [m] - 要訪問單元格i,j,您只需訪問索引n(偏移量爲#1)處的子數組指針,然後訪問索引爲m(偏移量爲#1)的子數組。
[] []在兩方面都較好。訪問效率更高,內存更靈活。 此外,您可以只訪問一行並更有效地處理它,因爲您不對該行中的每個單元格執行完整的多維訪問。
然而,有一個[,]的優點:你總是知道矩陣的寬度是固定的。使用[] [],每個子數組可以有不同的長度,甚至可以爲空。這可以被認爲是一種優勢,但有時候反過來也是有用的。
看看我如何編輯你的答案,你將學習如何插入鏈接... – aleroot