Hallo,
ich habe eine
IList<IMyIntf>
nun möchte ich diese Liste nach bestimmten Eigenschaften filtern, wozu ich diese Liste einer Funktion als Parameter übergebe und als Rückgabewert wieder eine IList<IMyIntf> bekomme / bekommen möchte.
Delphi-Quellcode:
function FilterNachBlau(aList: IList<IMyIntf>): IList<IMyIntf>;
begin
Result := IList<IMyIntf>(aList.Where(function(const aMyIntf: IMyIntf): boolean
begin
Result := aMyIntf.InnerColor = clBlau;
end);
end;
Den Typecast ist notwendig da die Where Methode ein IEnumerable zurück gibt. Da IList von IEnumerable abgeleitet ist, sollte es keine Schwierigkeiten geben.
Der Debugger sagt mir nun aber dass der zurück gelieferte Typ "TWhereIterator" ist.
Und sobald ich auf die zurück gelieferte IList (die wohl keine IList ist) zugreife, kommt eine
Exception "privileged instruction at 0x00e638e2"
Was mache ich falsch, bzw. geht das filtern auch anders? (natürlich ginge es in einer for schleife alles einzeln durchzugehen, das sollte aber nicht Sinn der Sache sein)
danke