Eventuali duplicati:
What is differences between Multidimensional array and Array of Arrays in C#?C# Array - string [] [] vs string [,]
Qualcuno mi può spiegare la differenza tra string[][]
e string[,]
?
Eventuali duplicati:
What is differences between Multidimensional array and Array of Arrays in C#?C# Array - string [] [] vs string [,]
Qualcuno mi può spiegare la differenza tra string[][]
e string[,]
?
string[,]
è un 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"."
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]"} };
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
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
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.
Guarda come ho modificato la tua risposta e imparerai come inserire i collegamenti ... – aleroot