In diesem Blogartikel wirst du die sogenannten C# Arrays kennenlernen. Bei Arrays handelt es sich im Prinzip um eine besondere Form von Variablen. Diese heben sich insofern von Variablen ab, dass sie uns das Speichern gleich mehrerer Werte gleichzeitig ermöglichen.
Wie ein Array aussieht und wie man dieses erstellt, sehen wir uns in den folgenden Zeilen im Detail an.
Inhaltsverzeichnis
1. Was sind C# Arrays?
Arrays sind aus der Programmierung nicht wegzudenken, da wir sie im Alltag immer wieder gebrauchen können. Doch was sind Arrays eigentlich?
Ein C# Array kannst du dir wie eine Variable vorstellen, die mehrere Werte auf einmal beinhalten kann.
Anders gesagt ist ein Array mit einem Schrank vergleichbar, der mit mehreren Schubladen ausgestattet ist. In jeder dieser Schubladen befindet sich ein bestimmter Wert. Diese Werte kann man aus den einzelnen Schubladen herausnehmen und wieder hineinlegen. Oder sich die Werte lediglich anschauen.
Bei Arrays handelt es sich um die einfachste Datenstruktur in der Programmierung. Viele komplexere Datenstrukturen bauen zudem auf den Arrays auf.
1.1. Was ist eine Datenstruktur?
Eine Datenstruktur kannst du dir wie eine strukturierte Sammlung von Daten vorstellen. Davon gibt es zahlreiche verschiedene Arten, die Daten auf unterschiedliche Art und Weise speichern und verwalten. Arrays sind, wie bereits erwähnt, so ziemlich die einfachste Art davon.
Dabei gibt es in C# Arrays unterschiedlicher Art. Auf der einen Seite sind das die eindimensionalen Arrays, die du dir wie eine eindimensionale Liste aus Werten vorstellen kannst. Auf der anderen Seite gibt es die zweidimensionalen Arrays, unter welchen man Tabellen aus Werten mit Zeilen und Spalten versteht.
Wir sehen uns zum Einstieg nun die 1D-Arrays an, da diese simpel sind und wir sie am häufigsten benötigen.
2. Was ist ein 1D-Array?
Ein 1D-Array ist eine einfache Liste von Werten. Jeder darin enthaltene Wert kann über seinen sogenannten Index, also seine Position im Array, gelesen oder überschrieben werden.
Über den Index können wir also sozusagen auf die Schublade zugreifen, in der sich ein bestimmter gesuchter Wert befindet.
In der folgenden Abbildung siehst du ein Beispiel für ein im C# Code verwendetes Array:
Wie du sehen kannst, wurde zunächst ein Array definiert. Der Unterschied zur Variablendefinition ist der, dass nach dem Datentyp noch ein eckiges Klammerpaar angehängt wird. Die Array-Instanz wird über „new string[4]“ erzeugt und mithilfe des Zuweisungsoperators an „namen“ zugewiesen.
Die Vier drückt aus, dass ich in dieses Array vier String Werte speichern möchte.
Wenn man C# Arrays erstellt, muss bei der Erzeugung immer direkt eine gewünschte Größe spezifiziert werden. Diese ist fix und lässt sich nicht mehr ändern. Wenn ich also in unserem Beispiel im Array mit dem Bezeichner „namen“ die Zahl 4 zwischen die eckigen Klammern schreibe, kann ich in dieses vier verschiedene Werte speichern.
Auf die einzelnen Indizes (Indizes ist der Plural von Index), also die Positionen bzw. Schubladen im Array kann ich zugreifen, indem ich den Namen des Arrays und den jeweiligen Index schreibe. Beispiel: namen[0]
C# Arrays fangen bei 0 zu zählen an. Das heißt, Index 0 ist immer der erste Index in einem Array. In Index 0 schreibe ich in unserem Beispiel den Wert Alina. In Index 1, also den zweiten Wert, schreibe ich Lasse, in den dritten Wert Jens und in den vierten den Namen Sabine.
Wie du siehst, kann man in diese Indizes genauso einfach Werte schreiben wie auch bei Variablen. Man gibt dafür lediglich das Array an und schreibt den gewünschten Index, den man ansprechen möchte, mit dem eckigen Klammerpaar und der Zahl. So verhält es sich im Grunde auch beim Lesen von Werten.
Außerdem kann ich den Wert des Array Indexes auch lesen, indem ich schreibe Console.WriteLine(namen[0]).
Damit würde ich in der Konsole den Namen Alina ausgeben lassen. Das funktioniert also wie bei ganz normalen Variablen auch, nur dass wir immer noch den Index in dem eckigen Klammerpaar an den Variablennamen anhängen müssen.
Das sind also im Grunde eindimensionale C# Arrays. Nun möchte ich dir das Ganze noch Schritt für Schritt an einem weiteren Praxisbeispiel in Visual Studio zeigen. Die zweidimensionalen Arrays sehen wir uns dann im nächsten Blogartikel an, da das Thema hier den Rahmen sprengen würde.
3. 1D-Arrays in der Praxis
Wie funktionieren Arrays jetzt also in der Praxis? Gerade haben wir gelernt, was ein Array ist. Nämlich im Grunde eine Variable, die mehrere Werte auf einmal fassen kann.
Arrays kann man in C# von jedem beliebigen Datentyp erstellen. Das heißt, ich kann nicht nur wie eben im Beispiel gezeigt, ein Array aus Strings erstellen, sondern beispielsweise auch ein Array aus Integern. Genau das werden wir jetzt einmal umsetzen.
Wie bereits gelernt, erstellt man ein Array wie eine Variable, allerdings fügt man noch ein eckiges Klammerpaar an.
Das heißt: Zuerst schreiben wir den Datentyp, anschließend folgt das eckige Klammerpaar. Damit sagen wir, dass wir nicht nur einen einfachen Integer Wert erstellen möchten, sondern ein Array aus Integern.
Nun gebe ich dem Array den Namen "numbers" und weise direkt noch eine Array Instanz zu. Ich initialisiere dieses Array also mit dem Schlüsselwort new, gefolgt von dem Datentyp und dem eckigen Klammerpaar. Zwischen das Klammerpaar schreibe ich nun die gewünschte Größe des C# Arrays. Für unser Beispiel wähle ich dazu 4. Somit kann unser Array numbers vier Integer Werte fassen. Am Ende setzen wir noch wie gewohnt ein Semikolon:Damit haben wir unser Array namens numbers also erstellt und können den einzelnen Indizes, anders gesagt den Schubladen dieses Arrays, auch schon Werte zuweisen. Wie machen wir das nun?
Um auf einen Index von numbers zugreifen zu können, geben wir diesen innerhalb des eckigen Klammerpaars an. Der erste Index eines C# Arrays ist wie gesagt immer der Index 0. Beim Index 0 weise ich einfach mal den Wert 10 zu:
Das heißt, innerhalb des Arrays an der Position mit dem Index 0 steckt jetzt der Wert 10.
An dieser Stelle kann ich natürlich auch noch die anderen Indizes mit Werten befüllen. In Index 1 schreibe ich den Wert 20, in Index 2 den Wert 25 und in den letzten Index 3, da wir das Speichern von vier Werten festgelegt haben, schreibe ich 30:
Damit haben wir dem Array numbers die Werte zugewiesen. Wie bei normalen Variablen auch, haben wir auf diese Indizes eines C# Arrays nicht nur einen schreibenden, sondern auch einen lesenden Zugriff.
Das bedeutet, ich kann zum Beispiel Console.WriteLine(numbers[2]) schreiben:
Beim Ausführen des Programms erhalten wir damit den Wert 25 in der Konsole, da ich diesen in Index 2 vom numbers Array geschrieben habe:
Wenn ich den Index nun einfach mal auf 3 ändere, sehen wir den Wert 30 in der Konsole:
Die Arbeit mit Array Indizes verhält sich also genauso wie die Arbeit mit ganz normalen Variablen. Du hast also gelernt, wie man ein Array erstellen kann und wie man die einzelnen Indizes zuweisen und lesen kann.
Jetzt möchte ich dir noch zeigen, wie du direkt bei der Erzeugung eines C# Arrays die Werte zuweisen kannst, ohne vorher eine Größe bzw. die Indizes einzeln spezifizieren zu müssen. Wenn du schon von Beginn an weißt, welche Werte du zuweisen möchtest, kannst du die Größe nämlich auch weglassen.
Stattdessen setzt man nach new int[] ein geschweiftes Klammerpaar, zwischen welches man die Werte schreiben und direkt zuweisen kann. Für Index 0 wähle ich den Wert 10, für Index 1 den Wert 20, für Index 2 den Wert 30 und für Index 3 den Wert 40. Dann schließen wir das Ganze mit einem Semikolon ab:
Möchten wir jetzt beispielsweise Index 3 ausgeben lassen, erhalten wir den Wert 40. Denn das ist schließlich Index 3:
Die Größe dieses C# Arrays ist vier, weil wir vier Werte zugewiesen haben. Ganz wichtig ist, dass man versteht, dass die Größe so eines Arrays fix ist.
Das heißt: Wenn wir das Array einmal erstellt und Werte zugewiesen haben, können wir die Größe des Arrays nicht mehr verändern. Ich kann nun also bei diesem Array niemals einen fünften Wert zuweisen. Stattdessen müsste ich ein neues Array Objekt erstellen.
An dieser Stelle sind wir auch schon am Ende des heutigen Beitrags angekommen. Du hast gesehen, was Arrays sind und die eindimensionalen Arrays auch direkt in der Praxis kennengelernt.
Nun macht es Sinn, damit etwas herumzuexperimentieren, damit du das Thema verinnerlichen kannst und somit den zweidimensionalen Arrays gewappnet bist.