C# | bestimmtes Objekt einer Liste löschen?
Hallo!
Ich habe eine LinkedList mit mehreren Teilnehmer erstellt.
LinkedList<Schulklasse> HTL = new LinkedList<Schulklasse>();
Schulklasse ist eine extra erstellte Klasse. Jede neu erstellte bekommt im Konstruktor einen string (Name) zugewiesen.
Mit welchem Befehl kann ich gezielt eine Schulklasse aus der Liste löschen?
GetIntFromConsole() ist ein Unterprogramm um Fehler bei der Eingabe zu vermeiden
2 Antworten
Hi, ich bin mir noch unschlüssig ob eine List<T> nicht deinen Ansprüchen genügen würde, aber das sei mal dahingestellt.
Die Remove(T value)-Methode würde dich zum Ziel führen, wenn du dein Objekt finden könntest um es dann dieser Methode zur Löschung zu übergeben.
Hierzu müsstest du entweder deine Klasse IComparable<T> und IEquatable<T> implementieren lassen oder einen IEqualityComparer<T> schreiben, weil "niemand" weiss, wie du deine Schulklasse identifizierst (ich gehe davon aus, dass der Name eindeutig ist, aber wer weiss das schon).
Ebenso wäre es möglich, per System.Linq und der First-Methode bzw. FirstOrDefault-Methode und einem entsprechenden Lambda das Element zu finden.
Die von regex9 verlinkten Beispiele auf der Microsoft Seite vergleichen Strings und das geht "out of the box".
Löblicherweise bietet Microsoft eine gute Dokumentation für die .NET-Standardbibliothek.
Schau unter Remove....
Das steht alles auf den jeweiligen Seiten, es gibt auch Beispiele. Du musst es dir aber auch durchlesen.
Hat mir leider nicht geholfen, da ich nicht weiß wie ich den Befehl anwende. Würde ihn in die else if(Anzahl == 2) setzen (Bild 1 unten).