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.

Était-ce utile?

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
scroll top