如何比较两个DataTable并将另一个DataTable3与仅存在于第二个DataTable中的行一起返回?

时间:2015-05-21 18:32:38

标签: vb.net linq datatables rows not-exists

我有两个DataTables DT1和DT2。 DT1有两行,DT2有三行。在DataTables中,row1和row2具有相同的列和值。但是DT1中不存在row3,这将是我的结果。

DT1:row1,row2

DT2:row1,row2,row3

Res:DT3:row3

1 个答案:

答案 0 :(得分:0)

var good_dt1=dt1.AsEnumerable().Select(t=>new {
   col1=dt1.Field<string>("col1name"),
   ....
});

var good_dt2=dt2.AsEnumerable().Select(t=>new {
  col1=dt2.Field<string>("col1name"),
  ....
});

var result=good_dt2.Except(good_dt1);
//or
var result=good_dt2.Where(d2=>!good_dt1.Any(d1=>d1.col1==d2.col2 && d1.col2==d2.col2 ...));

Stuff result back into a datatable.