2009-05-05 2 views
1

Я хотел бы сделать вычитание множеств на основе критериев. Псевдо-запрос будет выглядеть следующим образом:Синтаксис исключения с Linq, VB

select table1.columnn1 
     ,table1.column2 
    from table1, table2 
where (table1.column1.value1 not in table2.column1 
     and 
     table1.column2.value2 not in table2.column2) 

я могу сделать это примерно здесь:

dim list = From tbl1 In table1 Where tt.column1 ... 

И оттуда я не знаю, что делать.

ответ

2

Посмотрите на стандартный оператор запроса Except в LINQ. Это создает заданное различие двух последовательностей.

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx

Вы также можете использовать оператор Contains добиться того, что вы хотите, как и в примере ниже:

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 } 
+0

Спасибо большое, вы определенно направляя меня в правильном направлении. – Daniel

Смежные вопросы