Hallo,
meine Problemstellung: Ich habe eine IList<IMyItem>, von der ich mittels der Where Funktion ein IEnumerable<IMyItem> zurück bekomme.
Dieses Ergebnis möchte ich nun sortieren, bzw. in einer definierten Reihenfolge die IMyItems abrufen.
Ich hatte angenommen, dass es folgend funktioniert:
Delphi-Quellcode:
var EM: IEnumerable<IMyItem>;
aMI: IMyItem;
begin
EM := MyList.Where(...); // MyList = IList<IMyItem>
if (EM <> nil) and (EM.count > 0) then
for aMI in EM.Ordered(function (const L, R: IMyItem): integer
begin
Result := round(R.MyVal - L.MyVal);
end) do
showmessage(IntToStr(aMI.MyVal));
end;
an der ausgegeben Reihenfolge ändert sich aber nichts.
Wie geht das direkt mit IEnumerable?
Oder muss ich dazu das Ergebnis aus der Where Abfrage in eine eigene Liste kopieren und diese Liste mit Sort() sortieren?
danke schonmal