datatable1和datatable2比较。

假如datatable1中包含datatable2的数据那么过滤掉datatable2的数据生成datatable3,此时的datatable3不包含datatable2... 假如datatable1中包含datatable2的数据那么过滤掉datatable2的数据生成datatable3,此时的datatable3不包含datatable2的数据了。。请问高手怎么实现? 展开
 我来答
袁吉航
2012-11-23 · TA获得超过546个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:158万
展开全部
用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;
百度网友946507c
2012-11-23 · TA获得超过195个赞
知道答主
回答量:77
采纳率:0%
帮助的人:46.8万
展开全部
遍历DataTable1,对每一条数据DataRow, 去和DataTable2中数据比较,没有的话,就插入到DataTable3对象中.
如果有效率要求,那就得想办法,利用一些效率高的查找算法.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式