Einführung


In diesem Tutorial lernst du, was Collections in C# sind und wie du sie verwenden kannst.

Vorbereitung


Öffne Visual Studio und erstelle eine neue Konsolenapplikation (Console Application). Nun wurde das Projekt erstellt und bereits die Program.cs Datei geöffnet. Wird die App mit dem grünen Startbutton (oder mit F5) gestartet öffnet sich ein Konsolenfenster und der Code in der Main Methode wird aufgerufen.

Auf der Suche nach weiteren C# Tutorials?

Hier entlang

Los geht's!


Hier ist ein Beispiel:

static void Main(string[] args) { Car car1 = new Car { Make = "Maserati", Model = "MC20" }; Car car2 = new Car { Make = "Ford", Model = "Transit" }; Book book = new Book { Title = "Harry Potter and the Philosopher's Stone", Author = "J. K. Rowling" }; }
text/x-csharp

Bei diesem Code haben wir pro Auto und pro Buch, dass wir haben eine extra Variable. Das ist ziemlich mühsam, wenn man beispielsweise alle Autos auflisten oder sortieren möchte.

ArrayList

Eine ArrayList hat, im Gegensatzt zu einem Array, eine dynamische Größe. Eine ArrayListe erstellst du wie ein normales Objekt. Um Elemente in eine Liste hinzuzufügen rufe die Add-Methode auf, wenn du ein Element löschen willst, nimmst du die Remove-Methode.

ArrayLists haben aber einen Nachteil: Es können in einer Liste Objekte von unterschiedlichen Typen gelagert werden. Das kann zu diversen Fehlern kommen.

ArrayList arrayList = new ArrayList(); arrayList.Add(car1); arrayList.Add(car2); arrayList.Add(book); foreach (Car car in arrayList) { // Hier würde ein Fehler auftreten, // weil in unserer Arraylist nicht nur Autos, // sondern auch ein Buch enthalten ist. Console.WriteLine($"${car.Make}: ${car.Model}"); }
text/x-csharp

List<T>

Wenn man eine Liste mit nur einem Datentypen verwenden, kann man List<T> verwenden.

Sie funktioniert gleich, wie eine ArrayList, nur dass du den Typ angibst, welchen du in der Liste haben möchtest, also beispielsweise Car.

List<Car> list = new List<Car>(); list.Add(car1); list.Add(car2); // Da wir den Typ Book spezifiziert habe, // wird es gar nicht zugelassen, ein Buch hinzuzufügen. // list.Add(book);
text/x-csharp

Dictionary<TKey, TValue>

Ein Dictionary ist ein "Wörterbuch". Es besteht aus Paaren von Keys und Values.

Hier ist ein Beispiel:

Dictionary<string, Car> dict = new Dictionary<string, Car>(); dict.Add("AB 123 CD", car1); // "AB 123 CD" ist hier das Kennzeichen dict.Add("EF 456 GH", car2); // "EF 456 GH" ist hier das Kennzeichen // Das Auto, welches das Kennzeichen "AB 123 CD" hat Car carFromDict = dict["AB 123 CD"]; Console.WriteLine($"{carFromDict.Make} {carFromDict.Model}");
text/x-csharp

Hier werden die Autos mit deren Kennzeichen als Key und dem Auto-Objekt als Value in das Dictionary eingespeichert.

So kann man leicht ein Auto mit einem bestimmten Kennzeichen suchen.

Initialisierung

Listen kann man, wie alle Objekte gleich mit Werten deklarieren. Dies geht wiefolgt:

ArrayList arrayList2 = new ArrayList() { new Car { Make = "Maserati", Model = "MC20" }, car2, book }; List<Car> list2 = new List<Car>() { new Car { Make = "Maserati", Model = "MC20" }, car2 }; Dictionary<string, Car> dict2 = new Dictionary<string, Car>() { { "AB 123 CD", new Car { Make = "Maserati", Model = "MC20" } }, { "EF 456 GH", car2 }, };
text/x-csharp

Lust auf mehr Tutorials?

Klicke hier

Vollständiger Sourcecode


class Program { static void Main(string[] args) { Car car1 = new Car { Make = "Maserati", Model = "MC20" }; Car car2 = new Car { Make = "Ford", Model = "Transit" }; Book book = new Book { Title = "Harry Potter and the Philosopher's Stone", Author = "J. K. Rowling" }; /* ArrayList */ ArrayList arrayList = new ArrayList(); arrayList.Add(car1); arrayList.Add(car2); arrayList.Add(book); foreach (Car car in arrayList) { // Hier würde ein Fehler auftreten, // weil in unserer Arraylist nicht nur Autos, // sondern auch ein Buch enthalten ist. Console.WriteLine($"${car.Make}: ${car.Model}"); } /* Liste */ List<Car> list = new List<Car>(); list.Add(car1); list.Add(car2); // Da wir den Typ Book spezifiziert habe, // wird es gar nicht zugelassen, ein Buch hinzuzufügen. // list.Add(book); /* Dictionary */ Dictionary<string, Car> dict = new Dictionary<string, Car>(); dict.Add("AB 123 CD", car1); // "AB 123 CD" ist hier das Kennzeichen dict.Add("EF 456 GH", car2); // "EF 456 GH" ist hier das Kennzeichen // Das Auto, welches das Kennzeichen "AB 123 CD" hat Car carFromDict = dict["AB 123 CD"]; Console.WriteLine($"{carFromDict.Make} {carFromDict.Model}"); /* Deklarieren und Initialisieren */ ArrayList arrayList2 = new ArrayList() { new Car { Make = "Maserati", Model = "MC20" }, car2, book }; List<Car> list2 = new List<Car>() { new Car { Make = "Maserati", Model = "MC20" }, car2 }; Dictionary<string, Car> dict2 = new Dictionary<string, Car>() { { "AB 123 CD", new Car { Make = "Maserati", Model = "MC20" } }, { "EF 456 GH", car2 }, }; } }
text/x-csharp
public class Car { public string Make { get; set; } public string Model { get; set; } }
text/x-csharp
public class Book { public string Title { get; set; } public string Author { get; set; } }
text/x-csharp

Über Digital Dojo

Das Digital Dojo ist der virtuelle Übungsraum von COUNT IT.

Angehende Programmierer*innen, Code-Neulinge, Wiedereinsteiger*innen und Fortgeschrittene finden hier das nötige Rüstzeug für ihre Karriere.

Du möchtest deine Lehre bei COUNT IT starten? Dann bist du hier richtig - besiege deine Gegner im Dojo Game und sichere dir deine Lehrstelle!

Inspire your career.

Newsletter abonnieren

Der COUNT IT Newsletter liefert viermal jährlich interessante Neuigkeiten über das Unternehmen. Gleich anfordern!