比较两个数据表,并有效地将不同的数据绘制到新的数据表中
本文关键字:数据表 数据 绘制 有效地 两个 比较 | 更新日期: 2023-09-27 18:34:01
本质上我有两个数据表
数据表1
PirateShipID PirateShipPreference
123 1
122 2
121 3
和 DataTable 2(它具有不同的命名列,但数据类型相同。
RGPirateShipID PirateShipPreferenceType
123 1
122 1
121 3
我想抓取所有记录
PirateShipID == RGPirateShipID && PirateShipePreference != PirateShipPreferenceType
理想情况下使用 Linq,因为我相信这将是我实现这一目标的最快方法
var idsNotinPirates = from r in DataTable1.AsEnumerable()
//Get all records that don't match on preference
where DataTable2.AsEnumerable().Any(r2 => r["PirateShiptID"] == r2["RGPirateShipID"] && r["PirateShipPreference"] != r2["PirateShipPreferenceType"])
select r;
但是,DataTable 1 大约有 10k 个盗版,Datatable 2 有 100 万个。
应用程序需要很长时间才能完成上述操作。
我怎样才能提高工作效率?
我相信你应该做这样的事情:
var query = from r in DataTable1.AsEnumerable()
join r2 in DataTable2.AsEnumerable() on r["PirateShipID"] equals r2["RGPirateShipID"] into joinedTable
where joinedTable["PirateShipPreference"] != joinedTable["PirateShipPreferenceType"]
select r