Einzelnen Beitrag anzeigen

Friday

Registriert seit: 6. Mai 2008
97 Beiträge
 
Delphi 11 Alexandria
 
#1

Spring4D Collections: IEnumerable.Ordered

  Alt 9. Jul 2020, 15:38
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
  Mit Zitat antworten Zitat