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);