c#使用linq的DataTable差异

时间:2012-08-06 06:50:13

标签: c# linq

我有2个数据表。

dtTable1:

id    Name
---    ----
1     AAA
2     BBB

dtTable2:

id
---
2     

输出必须是table1,而不是id = 2的行。

如何使用Linq执行此操作?

提前致谢。

2 个答案:

答案 0 :(得分:0)

查看此SO帖子:Is there a “not equal” in a linq join

var filteredDataTable = tableA.Except(tableB);

此致

答案 1 :(得分:-1)

您可以从第二个DataTAble获取ID列表,如:

var tempList = (from d in dt2.AsEnumerable()
            select d.Field<int>("ID")).ToList();

稍后您可以使用!Contains从第一个数据表中检查Not In,如:

var result = from t in dt1.AsEnumerable()
             where !tempList.Contains(t.Field<int>("ID"))
             select t;