2012-10-06 16 views

Antwort

23

string[,] ist ein multidimensional array.

multidimensional array

string[][] ist ein Jagged array:

A gezackten Array ist ein Array, dessen Elemente-Arrays. Die Elemente von einer gezackten Anordnung können unterschiedliche Abmessungen und Größen haben. Ein gezacktes Array wird manchmal als "Array von Arrays" bezeichnet."

Jagged array

6

string[,]-Multidimensional Arrary (Rectangular array)

Multidimensional kann mehr als eine Dimension haben. Das folgende Beispiel zeigt, wie Sie ein zweidimensionales Array aus zwei Zeilen und zwei Spalten erstellen.

Erklärung:

string[,] contacts; 

Instanziierung:

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

Initialisierung:

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



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

Ein gezacktes Array ist ein Array, dessen Elemente Arrays sind. Die Elemente eines gezackten Arrays können verschiedene Dimensionen und Größen haben. Ein gezacktes Array wird manchmal als "array-of-arrays" bezeichnet.

Ein gezacktes Array kann effizient viele Zeilen unterschiedlicher Länge speichern. Jede Art von Daten, Referenz oder Wert kann verwendet werden. Das Indizieren von gezackten Arrays ist schnell. Die Zuordnung ist etwas langsam.

Jagged-Arrays sind schneller als mehrdimensionale Arrays

Deklaration:

string[][] contacts; 

Instanziierung:

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

Initialisierung:

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

Sehen Sie, wie ich Ihre Antwort bearbeitet habe, und Sie lernen, wie Sie Links einfügen ... – aleroot

4

string[][] als jagged array

A gezackten Array ist ein Array, dessen Elemente-Arrays. Die Elemente eines gezackten Array unterschiedlicher Abmessungen und Größen sein kann. Ein gezackten Array wird manchmal ein "Array-of-Arrays."

während string[,] ist eingenanntwelche

Arrays können

1

string[][](Jagged Arrays) sind Array von Array mehr als eine Dimension haben, mit festen Anzahl von Zeilen und variabler Länge der Spalten während string[,](Rectangular Arrays) ist eine Matrix mit einer festen Anzahl von Zeilen und Spalten. Es gibt eine gute Diskussion over there

2

Zwei Aspekte des Unterschiedes wichtig sind:

Speicher-weise:

[n, m] - Gespeichert als eine lange Reihe von Gedächtnis, als wäre es [ n * m] [n] [m] - Gespeichert als einfaches Array der Größe n, wobei jedes Element ein Zeiger auf ein Array der Größe m ist.

Zugang weise:

[n, m] - Zelle Für den Zugriff auf i, j, was wirklich passiert ist, dass es den Zeiger des [n * m] Array und gleicht sie durch n * Breite nimmt + m und greift dann auf den Wert zu. [n] [m] - Um auf Zelle i, j zuzugreifen, greifen Sie einfach auf den Sub-Array-Zeiger mit dem Index n (Offset # 1) zu und greifen dann auf das Sub-Array mit dem Index m (Offset # 1) zu.

[] [] Ist in beiden Aspekten besser. Effizienter im Zugriff und flexibler im Speicher. Sie können auch nur einmal auf eine einzelne Zeile zugreifen und sie noch effizienter verarbeiten, da Sie für jede Zelle in dieser Zeile keinen vollständigen mehrdimensionalen Zugriff ausführen.

Es gibt jedoch einen Vorteil von [,]: Sie wissen immer, dass die Breite der Matrix fest ist. Mit [] [] kann jedes Unterfeld unterschiedliche Längen haben und sogar null sein. Dies kann als ein Vorteil angesehen werden, obwohl das Gegenteil manchmal auch nützlich sein kann.