我有这两个数据表,我想找出它们之间的区别。这是一个例子:
Table1
-------------------------
ID | Name
--------------------------
1 | A
2 | B
3 | C
--------------------------
Table2
-------------------------
ID | Name
--------------------------
1 | A
2 | B
--------------------------
我只想将结果作为表 1 中的数据而不是表 2 中的数据 (table1-table2)
ResultTable
-------------------------
ID | Name
--------------------------
3 | C
--------------------------
我尝试通过 Linq 使用这两个类似的解决方案,但它总是返回 table1 而不是 table1-table2。这是第一个解决方案:
DataTable table1= ds.Tables["table1"];
DataTable table2= ds.Tables["table2"];
var diff= table1.AsEnumerable().Except(table2.AsEnumerable(),DataRowComparer.Default);
第二种方案:
var dtOne = table1.AsEnumerable();
var dtTwo = table2.AsEnumerable();
var difference = dtOne.Except(dtTwo);
那么,错在哪里呢?非常感谢您的所有回答。 :)
最佳答案
你可以试试下面的代码...
table1.AsEnumerable().Where(
r =>!table2.AsEnumerable().Select(x=>x["ID"]).ToList().Contains(r["ID"])).ToList();
关于c# - 如何获得两个数据表之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15002623/