1.相同列对比
var data1 = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default); //差集 筛选不一样的数据返回对比的数据(如需显示被对比数据则把被对比的数据放到前面替换位置)
var data2 = dt1.AsEnumerable().Intersect(dt2.AsEnumerable(), DataRowComparer.Default);//交集 筛选相同的数据返回
2.指定列对比
//差集
var data1 = from r in dt1.AsEnumerable()
where !(from rr in dt2.AsEnumerable()
select rr.Field<string>("name")).Contains( r.Field<string>("name"))
select r;
//交集
var data2 = from a in dt1.AsEnumerable()
where
(from b in dt2.AsEnumerable()
select b.Field<string>("name")).Contains(a.Field<string>("name"))
select a;