C# Mehrdimensionale Arrays
Mehrdimensionale Arrays
Im vorherigen Kapitel haben Sie etwas über Arrays gelernt, die auch als eindimensionale Arrays bekannt sind. Diese sind großartig und etwas, das Sie beim Programmieren in C# häufig verwenden werden. Wenn Sie Daten jedoch in tabellarischer Form speichern möchten, beispielsweise in einer Tabelle mit Zeilen und Spalten, müssen Sie sich mit mehrdimensionalen Arrays vertraut machen.
Ein mehrdimensionales Array ist im Grunde ein Array von Arrays.
Arrays können beliebig viele Dimensionen haben. Am gebräuchlichsten sind zweidimensionale Arrays (2D).
Zweidimensionale Arrays
Um ein 2D-Array zu erstellen, fügen Sie jedes Array in seinen eigenen Satz geschweifter Klammern ein und fügen Sie ein Komma (,
) in die eckigen Klammern ein:
Beispiel
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Gut zu wissen: das einzelne Komma [,]
gibt an, dass das Array zweidimensional ist. Ein dreidimensionales Array hätte zwei Kommas: int[,,]
.
numbers
ist jetzt ein Array mit zwei Arrays als Elementen. Das erste Array-Element enthält drei Elemente: 1, 4 und 2, während das zweite Array-Element 3, 6 und 8 enthält. Stellen Sie sich das Array zur Visualisierung als eine Tabelle mit Zeilen und Spalten vor:
SPALTE 0 | SPALTE 1 | SPALTE 2 | |
---|---|---|---|
REIHE 0 | 1 | 4 | 2 |
REIHE 1 | 3 | 6 | 8 |
Greifen Sie auf Elemente eines 2D-Arrays zu
Um auf ein Element eines zweidimensionalen Arrays zuzugreifen, müssen Sie zwei Indizes angeben: einen für das Array und einen für das Element innerhalb dieses Arrays. Oder noch besser mit Blick auf die Tabellenvisualisierung; eine für die Zeile und eine für die Spalte (siehe Beispiel unten).
Diese Anweisung greift auf den Wert des Elements in der ersten Zeile (0) und dritten Spalte (2) des zu Zahlen
-Array:
Beispiel
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
Console.WriteLine(numbers[0, 2]); // Ausgänge 2
Denken Sie daran: Array-Indizes beginnen mit 0: [0] ist das erste Element. [1] ist das zweite Element usw.
Elemente eines 2D-Arrays ändern
Sie können auch den Wert eines Elements ändern.
Das folgende Beispiel ändert den Wert des Elements in der ersten Zeile (0) und ersten Spalte (0):
Beispiel
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
numbers[0, 0] = 5; // Wert auf 5 ändern
Console.WriteLine(numbers[0, 0]); // Ausgänge 5 statt 1
Schleife durch ein 2D-Array
Sie können die Elemente eines zweidimensionalen Arrays ganz einfach mit einer foreach
-Schleife durchlaufen:
Beispiel
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
foreach (int i in numbers)
{
Console.WriteLine(i);
}
Sie können auch eine for-Schleife verwenden. Für mehrdimensionale Arrays benötigen Sie eine Schleife für jede Dimension des Arrays.
Beachten Sie außerdem, dass wir GetLength()
anstelle von Length
verwenden müssen, um anzugeben, wie oft Schleife sollte laufen:
Beispiel
int[,] numbers = { {1, 4, 2}, {3, 6, 8} };
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
{
Console.WriteLine(numbers[i, j]);
}
}