Syntaxe de jeu d'exclusion avec Linq, VB
Question
J'aimerais faire une soustraction d'ensembles en fonction de critères. Une pseudo-requête ressemblerait à ceci:
select table1.columnn1
,table1.column2
from table1, table2
where (table1.column1.value1 not in table2.column1
and
table1.column2.value2 not in table2.column2)
Je peux y aller à peu près ici:
dim list = From tbl1 In table1 Where tt.column1 ...
Et à partir de là, je ne sais pas quoi faire.
La solution
Consultez l'opérateur de requête standard Except
dans LINQ. Cela produit la différence d'ensemble de deux séquences.
http://msdn.microsoft.com /en-us/library/system.linq.enumerable.except.aspx
Vous pouvez également utiliser l'opérateur contient
pour obtenir ce que vous voulez, comme dans l'exemple ci-dessous:
dim table2Col1 = from t in table2 select t.column1
dim table2Col2 = from t in table2 select t.column2
dim results = _
from t in table1 _
where not table2Col1.Contains(t.column1) _
and not table2Col2.Contains(t.column2) _
select new with { .column1=t.column1, .column2=t.column2 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow