Читать книгу C# - Grundlagen für Beginner - Sven Heinrich - Страница 12
ОглавлениеArrays – einfache Datenstrukturen
Bevor eine Erklärung über das Array kommt, stelle Dir einmal vor, Du möchtest unterschiedliche Werte eines Datentyps anlegen.
Beispielsweise möchtest Du eine Reihe von Vornamen speichern.
Das Ganze könnte im Code so aussehen:
Jetzt möchtest Du aber nicht für jeden Vornamen eine eigene Variable anlegen, sondern alle Vornamen in eine Art „Box“ packen. Da kommt das Array ins Spiel. Ein Array ist eine sogenannte „einfache Datenstruktur“. Mit diesem Begriff kann allerdings ein Anfänger nicht viel anfangen. Daher stell Dir einfach die besagte Box mit einer Sammlung von Werten innerhalb nur einer Variablen vor. Die Daten sind dabei von einem Datentyp (beispielsweise dem Datentyp string). Auf jedes einzelne Datenelement kann dann mit dem zugehörigen Index zugegriffen werden. Aber was ist jetzt ein Index? Auch hier kannst Du es Dir einfach vorstellen.
Eine Box (Array) mit Karteikarten (Index) auf denen etwas steht (Wert)
1-dimensionales Array
Fangen wir mit einem Beispiel in der Code-Praxis an:
Was wird hier gemacht? a) Anlegen einer Variablen des Datentyps string mit der Benennung vornamen. b) Damit das Programm erkennt, dass Du aus der Variablen ein Array machen möchtest, fügst Du hinter dem Datentyp die []-Klammern ein. c) Die Variable wird deklariert, indem mit dem Schlüsselwort new und dem Datentyp string der Array eingeleitet wird. Innerhalb der []-Klammern kommt die Anzahl der Werte (in diesem Fall „4“), die in diesem Array gespeichert werden sollen. d) In der Start-Methode kannst Du dem Array die einzelnen Datenelemente zuweisen (Initialisierung). Hierzu schreibst Du den Namen der Variable mit dem jeweiligen Index wiederrum innerhalb von []-Klammern. Anschließend weist Du den Wert zu. Achtung: Ein Array ist immer null-basiert. Das bedeutet, die Zählung beginnt bei „0“ und nicht bei „1“!Das hier beschriebene Array ist ein „1-dimensionales Array“. Arrays können auch mehrere Dimensionen haben, allerdings kommt es am Anfang der Programmierung häufig vor, dass nur eine, bzw. zwei Dimensionen benötigt werden.
2-dimensionales Array
Neben den Vornamen möchtest Du zusätzlich die Nachnamen speichern.
Natürlich könnte das auch im Code so aussehen:
Jetzt erkennst Du, dass es in Deinem Code langsam unübersichtlich wird. Und Du hast gerade einmal vier Personen angelegt. Daher nimmst Du nun das 2-dimensionale Array, um die einzelnen Namen zu speichern. Dabei kannst Du Dir das 2-dimensionale Array wie eine zweispaltige Box, bzw. eine Tabelle vorstellen.
So sieht das komplette 2-dimensionale Array im Code aus:
Was passiert hier: a) Anlegen einer Variablen mit dem Datentyp string und der Benennung namen. b) Hinter dem Datentyp kommt wieder eine []-Klammer, aber diesmal mit einem Komma darin. Das bedeutet, dass es sich um zwei Positionen (x (Zeile) und y (Spalte) = [x,y]) handelt, also „[,]“. c) Anschließend wird wieder die Variable mit dem Schlüsselwort new und dem Datentyp string deklariert. Auch hier muss zum Schluss in den []-Klammern angegeben werden, wie groß die einzelnen Positionen sind. In diesem Fall brauchen wir 4 Zeilen und 2 Spalten, also [4,2]. d) In der Start-Methode kannst Du dem Array wiederrum die einzelnen Datenelemente zuweisen, indem Du den Namen der Variablen und den Index (jeweilige Zeile und Spalte) in die „[,]“ schreibst und den Wert zuweist (initialisiert). Achtung: Auch ein 2-dimensionales Array ist null-basiert!Ein Array kann aus jedem Datentyp definiert werden.
Häufiger Fehler
Der Fehler „IndexOutOfRangeException“ wird während des Programmlaufs aufgeführt. Dabei kannst Du in der unteren Beschreibung erkennen, dass sich der Fehler in der Datei „Array“, Methode „Start“, Zeile „30“ befindet.
Dieser Fehler bedeutet in der Regel, dass Du versuchst, einen Index anzusprechen, der außerhalb der Größe des deklarierten Arrays ist.
Beispielsweise hast Du einen Array deklariert, in dem 4 Datenelemente gespeichert werden können.
Und nun steht an einer anderen Stelle im Code, dass Du dem Index „4“ einem Wert zuweisen möchtest.
Allerdings hast Du dem Array ursprünglich nur Platz für 4 Datenelemente gegeben. Index 0, 1, 2 und 3. (Achtung: Arrays sind null-basiert!) Index 4 ist aber das 5. Datenelement und hat keinen Platz mehr, er liegt also außerhalb der Array-Größe.