0

我有 2 个数据表

DataTable1
SNo
1
2
3
4

DataTable2

SNo
1
4
3

I want the result

DataTableResult

SNo
2

我可以使用for循环来做到这一点。

但我正在尝试使用 linq 来做到这一点。

var intersection = DataTable1.AsEnumerable().Intersect(DataTable2.AsEnumerable(), DataRowComparer.Default);    

然后我发现 Intersect 会给你两个表都有的行。

我不知道到底要使用什么功能。

有任何想法吗?

我得到了答案。

感谢删除答案的人。

但这给了我一个开始。

答案是

var intersection = DataTable1.AsEnumerable().Except(DataTable2.AsEnumerable(), DataRowComparer.Default);
4

2 回答 2

2

您可以尝试使用 exept 语句,因为您仅将表格显示为结构,因此很难精确,但您可以尝试这样的想法

 var qry1 = datatable1.AsEnumerable().Select(a => new { SNo.ToString() });
 var qry2 = datatable2.AsEnumerable().Select(b => new { SNo.ToString() });
 var exceptAB = qry1.Except(qry2);
于 2012-07-25T02:51:16.343 回答
0

您可以使用这样的查询

select SNo from DataTable1 where SNo not in (select SNo from DataTable2);
于 2012-07-25T02:47:34.180 回答