Auf Elemente von 2D-Arrays zugreifen
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 3 von 66.
Der Zugriff auf Elemente in einem 2D-Array verwendet eine ähnliche Syntax wie bei regulären Arrays, erfordert jedoch zwei Indizes: einen für die Zeile und einen für die Spalte.
Hinweis: In C# gibt es zwei Arten mehrdimensionaler Arrays: rechteckige Arrays (int[,]) und gezackte Arrays (int[][]). Diese Lektion behandelt gezackte Arrays, bei denen jede Zeile ihr eigenes Array ist.
Erstelle ein unregelmäßiges Array mit 3 Zeilen und 4 Spalten:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Weise einer bestimmten Position einen Wert zu (Zeilenindex 1, Spaltenindex 2):
grid[1][2] = 42;Lies einen Wert aus einer bestimmten Position (Zeilenindex 0, Spaltenindex 3):
int value = grid[0][3];Da Indizes bei 0 beginnen, ist Zeilenindex 0 die 1. Zeile und Spaltenindex 3 die 4. Spalte.
Denke daran, dass array-Indizes bei 0 beginnen, daher sind die gültigen Indexbereiche:
- Zeilen: index 0 bis 2 (für ein Array mit 3 Zeilen: Die 1. Zeile hat den index 0, die 2. den index 1, die 3. den index 2)
- Spalten: index 0 bis 3 (für ein Array mit 4 Spalten: Die 1. Spalte hat den index 0, die 2. den index 1 und so weiter)
grid[3][2]), erhältst du eine IndexOutOfRangeException.Aufgabe
MittelSchreibe eine Methode namens getElement, die drei Argumente entgegennimmt:
- Ein 2D-Ganzzahl-Array (
int[][] matrix) - Einen Zeilenindex (
int row) - Einen Spaltenindex (
int col)
Die Methode soll das Element an der angegebenen Position zurückgeben, wenn die Indizes gültig sind. Wenn einer der beiden Indizes außerhalb des gültigen Bereichs liegt, soll die Methode -1 zurückgeben.
Probier es selbst
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Schreibe deinen Code hier
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – NullsicherheitÜbe selbstständig: Online-C#-Compiler