Array

Ein Array eine Datentyp-Variante, mit der es möglich ist, eine Liste von Werten in einer Variablen zu speichern.

Beim Programmieren genügt es häufig nicht, nur einen einzigen Wert in einer Variablen zu halten. Beim Durchsuchen von Datenmengen wird das Ergebnis zum Beispiel in Form einer Liste organisiert, die dann wiederum untersucht und durchlaufen werden kann. Arrays stellen dabei eine einfache, aber technisch effiziente Form einer Werte-Liste dar.

Codebeispiel

string[] elemente = new string[5]{"Feuer","Wasser","Erde","Luft","Metall"}; //Variable vom Typ String-Array, mit fünf vordefinierten Elementen

erzeugt im Speicher folgende Liste:

Jeder Eintrag besteht aus Positionsnummer (Index) und dem Inhalt (Text).

Typische Eigenschaften eines Arrays

Die genauen Beschaffenheiten eines Arrays hängen von der Programmiersprache ab. Bei den meisten Hochsprachen wie z.B. C# gilt:

  • Jedes Element des Arrays den selben Datentyp. Es ist z.B. nicht möglich, ein Array anzulegen, das sowohl Zahlen als auch Texte beinhaltet. Es kann nur den einen oder anderen Typ umfassen.
  • Array-Variablen erkennt man daran, dass eckige Klammern auf den Datentyp folgen,
    z.B.: string[] elemente definiert eine Liste von Texten (Strings).
  • Auf die Einträge einer solchen Liste (Array) wird ebenfalls mit eckigen Klammern zugegriffen, wobei die Klammern einen Index enthalten. Der Index beginnt meist mit Null, nicht mit Eins.
    Der Code elemente[0]="Holz" speichert den Text „Holz“ an die erste Stelle der Liste elemente. („Feuer“ wird durch „Holz“ ersetzt.)
  • Ein Array hat eine bestimmte Länge, die die Anzahl der im Array verfügbaren Speicherplätze angibt.
    Der Code string[] elemente = new string[5]; definiert ein Array namens zahlenfolge mit der Länge 5. In diesem Array lassen sich also 5 Zahlen speichern. Weil der Index mit 0 beginnt, ist der Index des letzten Elements folglich Länge-1, also hier 4.

Dynamische Listen

In einigen Programmiersprache sind Arrays statisch, d.h. die Länge kann nicht nachträglich verändert werden. In einem solchen Fall gibt es meistens Helfer-Klassen (meist „List“ oder ähnlich), die eine Form dynamischer Arrays ermöglichen.

Assoziative Arrays

Normalerweise sind die Indizes von Arrays ganze Zahlen, also vom Typ Integer. Eine Sonderform stellen Assoziative Arrays dar: Dabei kann ein separater Typ für den Index definiert werden, wodurch eine Verbindung (Assoziation) zwischen zwei theoretisch beliebigen Werten möglich wird. Solche assoziativen Arrays werden in C# als sogenanntes Dictionary realisiert. Der Gewinn dieser Technik liegt meistens in der vereinfachten Suche von Elementen, da der Index auch eine inhaltliche Information tragen kann:

Beispiel mit Array

/// Beispiel mit klassischem Array.
/// Aufgabe: In einer Liste ist das Alter von Elsa (21) und das Alter von Anna (18) hinterlegt. Der Code soll nun das Alter von Elsa finden und ausgeben.

private class Person //Helferklasse, um zwei Einträge (Name und Alter) zusammen speichern zu können.
{
  public string name="";
  public int alter=0;
  public Person(string neuerName,int neuesAlter)
  {
    name=neuerName;
    alter=neuesAlter;
  }
}

private static void testMitArray()
{
  
  Person[] personenDaten = new Person[2]; //Liste zur Speicherung von 2 Personen
  personenDaten[0]=new Person("Elsa",21); //Datensatz für Elsa hinzufügen
  personenDaten[1]=new Person("Anna",18); //Datensatz für Anna hinzufügen
  
  
  for(int i=0; i<personenDaten.Length; i++) //Wir müssen durch alle Elemente im Array laufen und bei jedem prüfen, ob es das gesuchte ist.
  {
    if(personenDaten[i].name=="Elsa") //Das ist der gesuchte Eintrag
    {
      Console.WriteLine("Elsa ist "+personenDaten[i].alter+" Jahre alt.");		
      break; //gefunden, wir können die for-Schleife verlassen
    }
  }	
    
  
}

Beispiel mit Dictionary

/// Beispiel mit assoziativem Array (Dictionary)
/// Aufgabe: In einer Liste ist das Alter von Elsa (21) und das Alter von Anna (18) hinterlegt. Der Code soll nun das Alter von Elsa finden und ausgeben.
using System.Collections.Generic; //Erforderlich, um den Dictionary-Typ nutzen zu können

private static void testMitDictionary()
{ 
  Dictionary<string, int> personenDaten = new Dictionary<string,int>(); //Assoziatives Array (beliebiger Länge) mit Index vom Typ string und Werten vom Typ int.
  personenDaten["Elsa"]=21; //Zahl 21 unter dem Index Elsa speichern
  personenDaten["Anna"]=18; //Zahl 18 unter dem Index Anna speichern
  
  Console.WriteLine("Elsa ist "+personenDaten["Elsa"]+" Jahre alt."); //Wir können die Zahl direkt über den Text-Index ermitteln
}

Schon alleine die Länge der beiden Code-Fragmente zeigt, was assoziative Arrays nutzen können.

Tipp: Probiere den Code online bei dotNetFiddle aus

Zusammenfassung

Arrays sind Datentypen, die mehrere Werte in einer Variable speichern können. Alle Werte eines Arrays müssen vom selben Typ sein, die Länge des Arrays ist meist fest definiert und unveränderlich. Der Zugriff auf die einzelnen Werte erfolgt über einen Zahlen-Index in eckigen Klammern, wobei der erste Eintrag den Index 0 hat. Flexiblere Listenformen sind über Helferklassen wie List und Dictionary möglich.

 

Ähnliche Einträge

Werbung

So wird's gemacht

Im C#-Programmierkurs zeige ich Dir Schritt für Schritt, wie dieses Thema in der Praxis funktioniert. Mehr dazu...

Dr. René Bühling

Hi, mein Name ist René und ich möchte Dir dabei helfen, deinen Traum vom eigenen Computerspiel Wirklichkeit werden zu lassen. Mein erstes kommerziell veröffentlichtes Spiel habe ich Mitte der 1990er Jahre als Hobby-Projekt mit einem Basic-Dialekt unter Windows entwickelt. Seither verfolge ich das Thema Spieleentwicklung in Hobby, Studium und Beruf. Ich habe über 20 Jahre Erfahrung in allen Phasen des Entwicklungsprozesses, die ich gerne mit dir teilen möchte.