C# Array Tutorial

Was Arrays sind und wofür sie benutzt werden

Dieser Artikel wird die einzige Ressource sein, die du jemals brauchen wirst um C# Arrays zu verstehen. Lies dir den Artikel also auf jeden Fall bis ganz zum Schluss durch.

Entdecke das Potenzial von C# und werde ein erfahrener Programmierer! Unser exklusiver Video Intensivkurs bietet dir alles, was du brauchst, um C# wie ein Pro zu beherrschen. Lerne von erfahrenen Dozenten, arbeite dich durch interaktive Übungen und Projekte und verbessere deine Fähigkeiten in Rekordzeit. Klick jetzt hier und starte deine Reise zum C#-Experten!

Das solltest du schon wissen

Um C# Arrays komplett verstehen zu können ist es unbedingt notwendig, dass du schon weißt was Variablen und Datentypen sind. Falls du darüber also noch keine Kenntnisse haben solltest, lies dir die passenden Lektionen dazu jetzt am besten durch.

Kurzgesagt: Mit Arrays kannst du mehrere Variablen eines Datentypen speichern (stell dir das am besten wie eine Liste vor).

C# Array praktisch erklärt

Nehmen wir als Beispiel eine Schulklasse mit sechs Kindern:

Wir könnten jetzt für jedes der Kinder eine string Variable anlegen die den Namen des Kindes wiedergibt.

Wichtig: Der folgende Code ist ein Negativ-Beispiel und soll nur veranschaulichen wieso Arrays so wichtig sind!

static void Main(string[] args)
{

   string student1 = "Peter";
   string student2  = "Karl";
   string student3  = "Heinrich";
   string student4  = "Lisa";
   string student5  = "Max";
   string student6  = "Sophie";

   // Denkaufgabe: Wie würde der Code hier wohl mit 1.000 Schülern aussehen?

}

Der oben stehen Code mit den sechs einzelnen Variablen ist aus mehrere Gründen unglaublich schlecht und zeigt die Notwendigkeit von Arrays. So wie der Code derzeit aussieht gibt es beispielweise keine professionelle Möglichkeit um die Namen aller Schüler in die Konsole auszugeben. Weiter unten im Artikel kommen wir darauf erneut zurück.

Die Lösung? Ein C# Array muss her!

C# Array erstellen

Stell dir den C# Array am besten wie eine Art Liste vor (es gibt tatsächlich auch Objekte in C# die List heißen, aber dazu später mehr).

Jeder Schüler bekommt einen fest zugewiesen Platz im Array. Die Länge des Arrays ist im unseren Fall sechs (weil wir sechs Schüler haben).

Wichtig: Der Computer beginnt bei 0 zu zählen! Daher befindet sich der erste Schüler auf der Array Position (Index) 0 und nicht 1.

Lass uns jetzt einen echten Array erstellen, damit wir die sechs einzelnen Variablen loswerden! Als Datentyp für den Array verwenden wir auch hier wieder string:

static void Main(string[] args)
{
  string[] students = new string[] { "Peter", "Karl" , "Heinrich", "Lisa", "Max", "Sophie"};
}

Schauen wir uns das Beispiel einmal genauer an. Mit den eckigen Klammern [] legen wir fest, dass sich die Variable als Array verhalten soll, mit string[] students haben wir also einen Array vom Datentyp string deklariert.

Mit dem new Operator erstellen wir ein neues Objekt vom Typ string Array. Denke immer daran, dass C# eine objektorientierte Sprache ist.

Hinter den zweiten eckigen Klammern sehen wir dann die sechs Elemente (in diesem Fall sind es Schüler) in den geschweiften Klammern. Jedes Element wird mit einem Komma voneinander getrennt.

Wie auch schon oben im Bild veranschaulicht, sieht unserer Array vom Inhalt jetzt also folgendermaßen aus:

  • auf Platz 0 → Peter
  • auf Platz 1 → Karl
  • auf Platz 2 → Heinrich
  • auf Platz 3 → Lisa
  • auf Platz 4 → Max
  • auf Platz 5 → Sophie

Wie bereits erwähnt fangen wir bei 0 an zu zählen anstatt bei eins. Das machen Computer nun mal so. Wenn wir also wissen möchten wer im Array an erster Stelle steht, dann müssen wir das Element im Array mit dem Index 0 abfragen. Beachte auch, dass der letzte Platz dann natürlich nicht auf 6 ist sondern auf Index 5.

Ein Element im Array abfragen

Wenn du jetzt ein Element aus dem Array oben abfragen möchtest, dann benötigst du einen Index. Der Index gibt einfach nur an, an von welchem Element im Array du den Wert bekommen möchtest (1. Element im Array → Index 0).

static void Main(string[] args)
{
  string[] students = new string[]{ "Peter", "Karl" , "Heinrich", "Lisa", "Max", "Sophie"};

  string studentName = students[2]; // <- Index ist 2
  Console.WriteLine(students); // Ergebnis ist Heinrich (3. Element im Array)

  Console.ReadKey();
}

Mit den eckigen Klammern im Beispiel fragen wir mit dem Index 2 das 3. Element (0,1,2) im Array ab, als Ergebnis bekommen wir “Heinrich”. Was korrekt ist.

Ein Element im Array verändern (neuen Wert zuweisen)

Wir können auch den Wert von einem Element im Array verändern. Dafür nutzen wir auch hier wieder die eckigen Klammern. Das tut man einfach immer wenn man ein Element im Array verändern oder abfragen möchte.

static void Main(string[] args)
{
  string[] students = new string[]{ "Peter", "Karl" , "Heinrich", "Lisa", "Max", "Sophie"};

  students[0] = "Rüdiger";
  Console.WriteLine(students[0]); // Ergebnis ist Rüdiger

  Console.ReadKey();
}

Der Wert von dem ersten Element im Array ist nicht länger “Peter”, denn er wurde durch “Rüdiger” ersetzt.

Wichtiger Hinweis: Ein Array kann nicht vergrößert oder verkleinert werden nachdem er erstellt wurde. Das heißt, in den Beispielen von oben könnten wir die Länge des Arrays nicht auf vier oder zehn verändern. Als Lösung dafür gibt es in C# bestimmte Klassen die auf Arrays aufbauen und sie ergänzen. Ein häufig verwendeter Typ ist die C# List oder das C# Dictionary.

Die häufige IndexOutOfRangeException

Wie du mit Sicherheit schon erkannt hast ist das mit dem Index etwas verwirrend. Was sehr häufig passiert ist, dass du beispielsweise einen Array mit 10 Werten hast, dein Array hat also eine tatsächliche Länge von 10. Du benutzt einen Index von 10 um das 10. Element im Array abzufragen und bekommst einen Error, die IndexOutOfRangeException.

Das Problem ist, dass du versuchst ein Element auf einem Platz abzufragen das nicht existiert. Wenn dein Array eine länge von 10 hat, dann ist dein größter möglicher Index 9 (0,1,2,3,4,5,6,7,8,9), vergiss niemals dass das erste Element im Array immer auf dem 0. Index sitzt.

Einen Array ohne vordefinierte Werte

Ich habe ja schon erwähnt, dass die Länge eines Arrays nach seiner Erstellung nicht verändert werden kann. Nehmen wir jetzt mal an wir wissen dass die Schulklasse aus 5 Kindern besteht, deren Namen kennen wir aber nicht. Dann können wir den Array nicht mit 5 zugewiesenen Werten deklarieren.

In diesem Fall erstellen wir einfach einen Array mit einer Länge von 5 aber ohne zugewiesene Werte. Die Werte für die Elemente können wir im nachhinein hinzufügen:

static void Main(string[] args)
{
  string[] students = new string[5];

  students[0] = "Peter";
  students[1] = "Karl";
  students[2] = "Heinrich";
  students[3] = "Gustav";
  students[4] = "Lisa";

  Console.ReadKey();
}

Wir haben also einen “leeren” Array mit 5 “leeren” Plätzen erstellt und die Plätze im nachhinein gefüllt. Beachte das wir bei der Erstellung des Arrays die Länge des Arrays in die eckigen Klammern geschrieben haben.

Die Anzahl der Elemente eines Arrays abfragen

Sehr häufig kommt es vor, dass du wissen willst, wie viele Elemente in deinem Array existieren. Hierbei spricht man von der sogenannten “Länge” des Arrays (eng. Length).

Jedes Array Objekt besitzt eine Eigenschaft (eng. Property) die wir ganz einfach abfragen können um die Anzahl der Elemente des C# Arrays zu erhalten:

static void Main(string[] args)
{
  string[] students = new string[2];

  students[0] = "Peter";
  students[1] = "Karl";

  // Hier verwenden wir die "Length" Eigenschaft
  int countOfElements = students.Length; 

  Console.WriteLine("Der Array hat " + countOfElements + " Elemente.");
  
  // Ausgabe -> 2

  Console.ReadKey();
}

Hinweis: Bedenke immer dass das erste Element im Array auf Index 0 sitzt. Wenn die Länge eines Arrays also 10 ist (10 Elemente), dann sitzt das 10. Elemente auf dem 9. Index.

Alle Elemente im Array mit einer Schleife ausgeben

In der Regel speichert man Elemente in einem Array, damit man die Daten sofort oder zu einem späteren Zeitpunkt verwenden kann. Nehmen wir für unser nächstes Beispiel mal an, dass wir die Namen aller Schüler in die Konsole schreiben möchten.


Mit einer Schleife (hier verwenden wir jetzt eine foreach Schleife aber es gibt noch andere) können wir jetzt durch unseren C# Array iterieren (jedes Elemente lesen):

static void Main(string[] args)
{
  string[] students = new string[5];

  students[0] = "Peter";
  students[1] = "Karl";
  students[2] = "Heinrich";
  students[3] = "Gustav";
  students[4] = "Lisa";

  // Mit dieser Schleife schreiben wir jeden Schüler
  // in die Konsole
  foreach(string student in students){
    Console.WriteLine(student);
  }

  Console.ReadKey();
}

Kurzgesagt: Mit Schleifen kannst du durch Datensätze wie Arrays, Listen, Dictionaries uvm. iterieren (auslesen der Elemente)

Schleifen sind ein ganz eigenes Thema. Wenn du noch gar keine Ahnung von Schleifen (eng. Loops) in C# hast, dann lies dir am besten meinen C# foreach Schleifen Artikel durch.

Was man sonst noch mit Arrays anstellen kann

Mit Arrays lassen sich nicht nur stupide Datensammlungen abbilden sondern man kann auch noch einige andere Sachen mit ihnen anstellen. Hier eine kurze Übersicht über weitere Funktionalitäten bezüglich C# Arrays:

  1. Elemente im Array sortieren oder filtern
  2. Elemente im Array filtern
  3. Arrays in Arrays verschachteln (Mehrdimensionale Arrays)

Man kann natürlich noch viele weitere Sachen mit C# Arrays anstellen aber jetzt hast du schonmal eine Vorstellung davon, wofür du Arrays zukünftig verwenden kannst.

Expertenwissen

Nur für Experten: Um mit absoluten Fachwissen zu glänzen kannst du dir jetzt schonmal merken, dass die reine Array Klasse, mehrere Daten speichern kann und das man eine foreach Schleife benutzten kann, WEIL der Array zwei wichtige Interfaces implementiert: Das IList Interface und das IEnumerable Interface.

Das IList Interface sorgt dafür, dass du Elemente in einem Array speichern kannst und sie über einen Index abfragen kannst. Und das IEnumerable Interface sorgt dafür, dass du mit einer foreach Schleife durch den Array iterieren kannst.

Fazit

Ein C# Array ist ein wichtiges Element beim programmieren und du solltest auf jeden Fall verstehen wie ein Array funktioniert und wofür er genutzt wird. Wenn du mehr über Arrays erfahren willst, dann schau doch mal hier vorbei.

Bist du bereit jetzt dein C# Array wissen zu testen? Sehr gut! Viel Spaß 🙂

Teste dein C# Array Wissen

Welcher Code ist hier richtig?

Kannst du die Länge eines Arrays während der Laufzeit verändern? (Elemente entfernen oder anhängen)

Auf welchem Index sitzt das erste Element im Array?

Du willst dem ersten Element im Array einen neuen Wert zuweisen. Welcher Code ist hier richtig?

Wie heißt die Eigenschaft, mit der du die Länge des Array abfragen kannst?


Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach zum echten C# Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Intensivkurs für Grundlagen und Expertenwissen wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.