Asp.net 从DataTable1中获取不在DataTable2中的行

Asp.net 从DataTable1中获取不在DataTable2中的行,asp.net,linq,datatable,Asp.net,Linq,Datatable,我有两个数据表 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); 然后我发现Int

我有两个数据表

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 is会给出两个表都有的行

我不知道该用什么函数

有什么想法吗

我已经得到了答案

感谢删除答案的人

但这给了我一个开始

答案是

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

您可以像这样使用查询

select SNo from DataTable1 where SNo not in (select SNo from DataTable2);

您可以尝试使用exept语句,但很难做到精确,因为您只将表显示为结构,但您可以尝试这样做

 var qry1 = datatable1.AsEnumerable().Select(a => new { SNo.ToString() });
 var qry2 = datatable2.AsEnumerable().Select(b => new { SNo.ToString() });
 var exceptAB = qry1.Except(qry2);