c#比较两个数组的差异


将DataTable中某一列数据直接转换成数组进行比较,使用的Linq,要引用命名空间using System.Linq;

1
2
3
4
5
6
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(); //相同的数据  (修改)
string [] arrAdd = arrRate.Except(arrTemp).ToArray(); //A中有B中没有的  (新增)
string [] arrNew = arrTemp.Except(arrRate).ToArray(); //B中有A中没有的  (删除)

例子:

1
2
3
4
5
6
string [] arrRate =  new  string [] {  "a" "b" "c" "d"  }; //A
string [] arrTemp =  new  string [] {  "c" "d" "e"  }; //B
 
string [] arrUpd = arrRate.Intersect(arrTemp).ToArray(); //相同的数据 (结果:c,d)
string [] arrAdd = arrRate.Except(arrTemp).ToArray(); //A中有B中没有的 (结果:a,b)
string [] arrNew = arrTemp.Except(arrRate).ToArray(); //B中有A中没有的 (结果:e)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM