2009-05-11 18 views
3

Ich habe zwei IQueryable Instanzen - objIQuerableA und objIQueryableB und ich möchte nur Elemente erhalten, die in objIQuerableA vorhanden sind und nicht in objIQuerableB.Vergleichen Sie zwei IQueryable Instanzen

Ein Weg ist, eine foreach-Schleife zu verwenden, aber ich frage mich, ob es eine bessere Methode gibt.

Antwort

8

Einfach und unkompliziert.

var result = objIQuerableA.Except(objIQuerableB); 
1

Der Titel sagt eigentlich, zwei IQueryables zu vergleichen. Wenn Sie tatsächlich einen Vergleich durchführen möchten, um festzustellen, ob beide IQueryable dieselben Ergebnisse in einer einzigen Abfrage enthalten ...

var aExceptB = objIQuerableA.Except(objIQuerableB); 
var bExceptA = objIQuerableB.Except(objIQuerableA); 
var symmetricDiff = aExceptB.Union(bExceptA); 
bool areDifferent = symmetricDiff.Any();