根据与另一个表的比较从一个表中删除行

时间:2015-05-06 19:18:46

标签: c# linq datatable

我有两个数据表,需要获取一个不在另一个中的行列表。例如,表格可能如下所示:

Table1:
FN    LN    EMAIL               POBox    CustID
John  Doe   johndoe@here.com    123       9876
Jane  Doe   janedoe@here.com    234       9888
Some  Guy   someguy@here.com    877       8888

Table2:
FN    LN    EMAIL               POBox
John  Doe   johndoe@here.com    123
Some  Guy   someguy@here.com    444

我需要从Table1返回使用Linq的包含Jane Doe的行(在Table1中但在Table2中没有)和包含Some Guy(表1中的POBox与Table2中的POBox不同)的行。我知道如果我在Table2中找不到它但是我不知道如何使用Linq这样做,我可以循环遍历表格行并吐出行。需要使用所有常见字段(FN,LN,EMAIL和POBox)进行比较。

1 个答案:

答案 0 :(得分:2)

有多种方法可以做到这一点,其中一种就是这样。

table1.Where(t1=>!table2.Any(t2=>t1.Email == t2.Email))