关于两个DataTable数据过滤的问题
我有两个数据结构一样的两个DataTable(dt1、dt2),dt1有49000多条数据,dt2有47000多条数据,现在想将dt1中已存在于dt2的数据剔除掉,我写了个方法,耗时4分钟~5分钟,这样正常吗?我之前测试过是30秒左右就可以过滤完的了,不知道为什么现在时间变长了。
我的方法如下:
foreach (DataRow dr1 in dt1.Rows){ foreach (DataRow dr2 in dt2.Rows) { if (dr1["id"].ToString() == dr2["id"].ToString()) { dr1.Delete(); dr2.Delete(); break; } } }dt.AcceptChanges();//
DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); var dt3 = from r in dt1.AsEnumerable() where !( from rr in dt2.AsEnumerable() select rr.Field<int>("Id") ).Contains( r.Field<int>("Id")) select r;
[解决办法]