datatable1和datatable2比较。
假如datatable1中包含datatable2的数据那么过滤掉datatable2的数据生成datatable3,此时的datatable3不包含datatable2...
假如datatable1中包含datatable2的数据那么过滤掉datatable2的数据生成datatable3,此时的datatable3不包含datatable2的数据了。。请问高手怎么实现?
展开
2个回答
展开全部
用linq来实现,先定义两个dt,这个可以换成你程序中的
DataTable dt1 = new DataTable(); //第一个datatable
DataTable dt2 = new DataTable(); //第二个datatable
思路:
1.根据某个字段,找到dt1和dt2中重复的数据集合(我这里用的是Id,只要id相同我就认为是重复的数据)
2.在dt1中减去上面找到的重复的集合,就是在dt1中取重复数据的补集。
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;
DataTable dt1 = new DataTable(); //第一个datatable
DataTable dt2 = new DataTable(); //第二个datatable
思路:
1.根据某个字段,找到dt1和dt2中重复的数据集合(我这里用的是Id,只要id相同我就认为是重复的数据)
2.在dt1中减去上面找到的重复的集合,就是在dt1中取重复数据的补集。
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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询