
Zitat von
Luckie:
Da stehe ich jetzt ehrlich gesagt etwas auf dem Schlauch.

IEnumerable ist das Basisinterface für alles worüber man einen for-each machen kann.
Also für alle Datencontainer.
IEnumerable<T> ist eine Spezialisierung für einen bestimmten Itemtypen.
"LINQ over Objects" basiert auf IEnumerable<T>, genau wie viele Methoden von vielen Hunderten von Klassen mit IEnumerable<T> umgehen können.
Es nicht zu implemetnieren würde heißen, dass deine Containerklasse nur so wie in Delphi wäre: Eine weitere Klasse. Mit der Implementierung ist sie eine richtige Containerklasse, auf die du Abfragen machen kannst, die du mit einem Call an eine andere Liste anhängen kannst,...
Mit meinem Beispiel oben wäre folgende LINQ-
Query möglich:
Delphi-Quellcode:
var persons := new PersonList<Person>();
// irgendws hinzufügen
var personNames :=
(from p in persons
where not String.IsNullOrEmpty(p.Name)
select distinct p.Name).ToList();