Wenn ich eine Liste von Objekten gegen eine bestimmte ID filtern mag, kann ich dies tun:Lambda-Ausdruck in der Liste ist für existiert
list.Where(r => r.Id == idToCompare);
Was, wenn statt einer einzelnen idToCompare
, ich habe eine Liste von Ids gegen vergleichen?
Wie lautet die Syntax für den Vergleich mit einer vordefinierten Liste? Etwas wie:
int[] listofIds = GetListofIds();
list.Where(r => r.Id "in listofIds");
Verwendung mit Rahmen Entity (und möglicherweise LINQ-To-SQL), wird dies übersetzt tatsächlich in „SELECT * FROM Tabelle mit ID in (1,2,3,4) ", was zu einer einzigen Reise zum Server führt. –
@IgorZevaka - wenn es die Datenbank mit EF abfragen wird, werde ich lieber SortedSet verwenden (was eine Art Superset von HashSet ist). Es ist auch einzigartig, wie HashSet, aber auch Sorted. Ich werde dann meine Db-Spalte indexieren, auf der ich die Where-Klausel ausführen werde. Das wird in großen Datenmengen wesentlich schneller sein. – sandiejat