Fortgeschrittene Grundlagen: Listen
Listen sind eine bessere Form von Arrays. Der Vorteil von Listen besteht hauptsächlich darin, dass diese nach Belieben vergrößert werden und einzelne Elemente auch wieder gelöscht werden können, ohne das Array komplett neu zu erstellen. In C# gibt es die ArrayList und die List
Die List
Eine Liste ist ein Klasse, weshalb wir das Schlüsselwort new benötigen, um ein Objekt davon zu erstellen. Der generische Typ wird in spitzen Klammern direkt hinter dem Klassennamen notiert. Mit der Funktion Add() können wir der Liste ein neues Element hinzufügen. Das Element wird dabei am Ende der Liste angehängt. Mit Insert() können wir ein Element am gewünschten Index einfügen. Die dahinter folgenden Elemente werden dabei um einen Index weiter verschoben. Die Funktion Remove() entfernt das gewünschte Element. Falls das Element mehrmals in der Liste vorhanden ist, wird lediglich das erste gefundene Element entfernt. Die Funktionen IndexOf() und LastIndexOf() dienen zur Suche nach einem Element, bei dem der dazugehörige Index zurückgegeben wird. Bleibt die Suche erfolglos, wird -1 zurückgegeben. Auch für die Sortierung gibt es eine Funktion: Mit Sort() erfolgt eine Sortierung an Hand des Standardvergleichs, d. h. bei einzelnen Zeichen bzw. Zeichenketten alphabetisch und bei Zahlen numerisch.
Program.cs
List<string> lZeichenketten = new List<string>(); lZeichenketten.Add("C#-Buch"); lZeichenketten.Add(".NET Framework"); lZeichenketten.Add("Visual Studio"); // da die Liste Zeichenketten enthält, erfolgt eine alphabetische Sortierung // bei nummerischen Typen würde eine nummerische Sortierung erfolgen // Objekt können nicht ohne weiteres sortiert werden, hierfür wird LINQ benötigt lZeichenketten.Sort(); Console.WriteLine("Sortierte Liste:"); foreach (string sZeichenkette in lZeichenketten) Console.WriteLine(sZeichenkette); Console.WriteLine(); // falls C#-Buch mehrmals vorkommen würde, kann der Index des letzten Vorkommens mit LastIndexOf() ermittelt werden Console.WriteLine("Die Zeichenkette \"C#-Buch\" befindet sich am Index {0}.", lZeichenketten.IndexOf("C#-Buch")); lZeichenketten.Insert(1, "Microsoft"); // einfügen an Index 1 (2. Element) lZeichenketten.Remove("Visual Studio"); // falls "Visual Studio" mehrmals vorkommt, wird nur der 1. Eintrag gelöscht Console.WriteLine(); Console.Write("Geben Sie einen Eintrag für die Liste ein: "); lZeichenketten.Add(Console.ReadLine()); Console.WriteLine("aktuelle Liste:"); foreach (string sZeichenkette in lZeichenketten) Console.WriteLine(sZeichenkette); Console.ReadKey();