2012-10-06 20 views

risposta

23

string[,] è un multidimensional array.

multidimensional array

string[][] è un Jagged array:

Una matrice irregolare è una matrice i cui elementi sono array. Gli elementi di una matrice seghettata possono essere di dimensioni e dimensioni diverse. Un array dentellato viene talvolta chiamato "array di matrici"."

Jagged array

6

string[,]-Multidimensional Arrary (matrice rettangolare)

multidimensionale può avere più di una dimensione. L'esempio seguente mostra come creare una matrice bidimensionale composta da due righe e due colonne.

Dichiarazione:

string[,] contacts; 

la creazione di istanze:

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

inizializzazione:

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



string[ ][ ] - Jagged Array (Array-of-Array)

Una matrice seghettata è una matrice i cui elementi sono matrici. Gli elementi di una matrice frastagliata possono essere di dimensioni e dimensioni diverse. Una matrice seghettata viene talvolta definita "array di array".

Una matrice irregolare può memorizzare efficientemente molte righe di lunghezza variabile. È possibile utilizzare qualsiasi tipo di dati, riferimento o valore. L'indicizzazione di array frastagliati è veloce. Assegnarli è un po 'lento.

Jagged array sono più veloci di array multidimensionali

Dichiarazione:

string[][] contacts; 

la creazione di istanze:

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

inizializzazione:

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

Guarda come ho modificato la tua risposta e imparerai come inserire i collegamenti ... – aleroot

4

string[][] come jagged array

Una matrice irregolare è una matrice i cui elementi sono array. Gli elementi di una matrice irregolare possono essere di diverse dimensioni e formati. A matrice irregolare viene talvolta chiamato "array di array".

mentre string[,] è un multidimensional array che

array può avere più di una dimensione

1

string[][](Frastagliate Array) sono array di matrice con un numero fisso di righe e di lunghezza variabile di colonne che string[,](rettangolare Array) è matrice con un numero fisso di righe e colonne. C'è una buona discussione over there

2

Due aspetti di differenza sono importanti:

Memoria-saggio:

[n, m] - Salvato da una lunga mucchio di memoria, come se fosse [ n * m] [n] [m] - Viene salvato come una semplice matrice di dimensione n, in cui ogni elemento è un puntatore a una matrice di dimensione m.

Access-saggio:

[n, m] - Per accedere cella i, j ciò che realmente accade è che ci vuole il puntatore del [n * m] array e compensa dal n * Larghezza + m, quindi accede al valore. [n] [m] - Per accedere alla cella i, j è sufficiente accedere al puntatore dell'array secondario all'indice n (offset # 1), quindi accedere all'array secondario all'indice m (offset # 1).

[] [] È migliore in entrambi gli aspetti. Più efficiente nell'accesso e più flessibile nella memoria. Inoltre, è possibile accedere a una singola riga solo una volta e elaborarla in modo ancora più efficiente, poiché non si esegue l'accesso multidimensionale completo per ogni cella in quella riga.

C'è, tuttavia, un vantaggio di [,]: si sa sempre che la larghezza della matrice è fissa. Usando [] [], ciascun sottoarray può avere lunghezze diverse e può anche essere nullo. Questo può essere considerato un vantaggio, anche se a volte può essere utile anche il contrario.