C#比较两个数组的不同
2015-07-14 14:48
676 查看
先描述需求: 表A中有个字段S内容是用逗号分隔开的,里边存的是表B的ID。当在修改A中数据的时候就需要修改S的内容这时候因为B表是在另一个库中存在的,如果直接全部删除旧的然后全部添加新的会影响效率,所以要先区别出不同的做处理,然后再操作数据库。
最后调用测试
结果
欢迎加技术讨论群169767436 大家共同交流进步。
public static void Compare(string[] arrFirst, string[] arrSecond, out List<string> lstAdd,out List<string> LstRemove) { lstAdd = new List<string>(); LstRemove = new List<string>(); if (arrFirst.Length <= 0 && arrSecond.Length <= 0) { lstAdd = null; LstRemove = null; } //添加 if (arrFirst.Length <= 0) lstAdd = arrSecond.ToList(); //删除 if(arrSecond.Length<=0) LstRemove = arrFirst.ToList(); for (int i = 0; i < arrFirst.Length; i++) { //if (arrSecond.Where(x => x == arrFirst[i]) == null) if(!arrSecond.Contains(arrFirst[i])) LstRemove.Add(arrFirst[i]); } for (int i = 0; i < arrSecond.Length; i++) { if (!arrFirst.Contains(arrSecond[i])) lstAdd.Add(arrSecond[i]); } //去重 LstRemove.Distinct(); lstAdd.Distinct(); }
最后调用测试
static void Main(string[] args) { Console.WriteLine("-----请输入第一个数------"); var strFirst = Console.ReadLine(); Console.WriteLine("-----请输入第二个数------"); var strSecond = Console.ReadLine(); var arrFirst = strFirst.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); var arrSecond = strSecond.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); List<string> lstAdd; List<string> LstRemove; Compare(arrFirst, arrSecond, out lstAdd, out LstRemove); if (lstAdd != null) { foreach (var item in lstAdd) { Console.WriteLine("要添加的ID有{0}", item); } } if (LstRemove != null) { foreach (var item in LstRemove) { Console.WriteLine("要删除的ID有{0}",item); } } Console.ReadKey(); }
结果
欢迎加技术讨论群169767436 大家共同交流进步。
相关文章推荐
- C#对多个集合和数组的操作(合并,去重,判断)
- C#高级编程三十八天----运算符
- [深入学习C#]C#实现多线程的方式:使用Parallel类
- C#基于两种需求向图片添加水印
- 使用C#+socket实现用移动设备控制的虚拟手柄
- 使用C#+socket实现用移动设备控制的虚拟手柄
- C#减少图片文件大小和尺寸(转)
- C# DataTable去除重复,极其简便、简单
- C#读取Excel数据两种方式性能对比
- C# 知识回顾 - 你真的懂异常(Exception)吗?
- C#获取文件的大小
- 使用C#读取文件流[转]
- C# 对文件操作
- C#中copy某目录下的所有的目录和文件到目的目录
- C#中使用自定义消息
- winfrom给word加水印
- 【C#】 一些不常用,很容易混淆的知识点
- combox绑定枚举和读取枚举
- C#读写txt文件的两种方法介绍
- C# readonly与const的区别