Mir ist auch gerade eingefallen, wie es ganz ohne .NET 3.5 geht und ohne LINQ und ohne CO2-Erwärmung und so
Delphi-Quellcode:
var myList := new List<MyClass>;
myList.AddRange([new MyClass(Vorname := 'Hans'),
new MyClass(Vorname := 'Hugo'),
new MyClass(Vorname := 'Fritz'),
new MyClass(Vorname := 'Dieter'),
new MyClass(Vorname := 'Werner')]);
var mySmallList := new List<Integer>;
mySmallList.AddRange([0,3,4]);
for m in mySmallList do
Console.WriteLine(myList[m].Vorname);
mySmallList.Sort((x,y) -> myList[x].Vorname.CompareTo(myList[y].Vorname));
for m in mySmallList do
Console.WriteLine(myList[m].Vorname);
Console.ReadLine();
Den Lambda-Ausdruck kannst Du auch also anonymen Delegate schreiben, das kann auch C# 2.0
//edit: Vielleicht bei dem Compare-Dingens noch Checks auf null / nil einbauen
Christian S.
Admin in der Entwickler-Ecke