c#比較兩個數(shù)組的差異
將DataTable中某一列數(shù)據(jù)直接轉(zhuǎn)換成數(shù)組進行比較,使用的Linq,要引用命名空間using System.Linq;
string
[] arrRate = dtRate.AsEnumerable().Select(d => d.Field<
string
>(
"arry"
)).ToArray();
//A
string
[] arrTemp = dtTemp.AsEnumerable().Select(d => d.Field<
string
>(
"arry"
)).ToArray();
//B
?
string
[] arrUpd = arrRate.Intersect(arrTemp).ToArray();
//相同的數(shù)據(jù)? (修改)
string
[] arrAdd = arrRate.Except(arrTemp).ToArray();
//A中有B中沒有的? (新增)
string
[] arrNew = arrTemp.Except(arrRate).ToArray();
//B中有A中沒有的? (刪除)
例子:
string
[] arrRate =?
new
?string
[] {?
"a"
,?
"b"
,?
"c"
,?
"d"
?};
//A
string
[] arrTemp =?
new
?string
[] {?
"c"
,?
"d"
,?
"e"
?};
//B
?
string
[] arrUpd = arrRate.Intersect(arrTemp).ToArray();
//相同的數(shù)據(jù) (結(jié)果:c,d)
string
[] arrAdd = arrRate.Except(arrTemp).ToArray();
//A中有B中沒有的 (結(jié)果:a,b)
string
[] arrNew = arrTemp.Except(arrRate).ToArray();
//B中有A中沒有的 (結(jié)果:e)