C#合并集合与数组:Union与Concat的区别及BinarySearch使用
在开发过程中,数组和集合的处理是最让我们担心的部分。一般会用for or foreach 来处理一些操作。这里介绍一些常用的集合跟数组的操作函数。
结果或目标
本教程旨在展示如何在C#中对 List<int> 和 int[] 进行合并、去重/保留重复项以及元素存在性判断。
准备条件
首先举例2个集合A,B.
List<int> listA = new List<int> {1,2,3,5,7,9};
List<int> listB = new List<int> {13,4,17,29,2};
真实操作顺序
第1步:合并两个集合
目的:将集合B的所有元素追加到集合A中。
入口:List<int>.AddRange()
动作:listA.AddRange(listB);
注意:此操作会修改原始集合A的内容。
第2步:获取去重的合并结果
目的:生成一个新的集合,包含A和B的所有元素,但剔除重复项。
入口:List<T>.Union()
参数与动作:List<int> Result = listA.Union(listB).ToList<int>();
完成状态:Result包含A和B中所有不重复的元素。
第3步:获取保留重复项的合并结果
目的:生成一个新的集合,包含A和B的所有元素,不剔除重复项。
入口:List<T>.Concat()
参数与动作:List<int> Result = listA.Concat(listB).ToList<int>();
完成状态:Result包含A和B中所有元素,若有重复则全部保留。
第4步:判断集合中是否包含某个值
目的:检查特定值是否存在于集合中。
入口:List<T>.BinarySearch()
重要参数:需要搜索的值。
动作:listA.BinarySearch(“1”);
可观察结果:如果包含则返回该值的索引;如果不包含则返回负数。
注意:原文描述为"返回0"是不准确的,应理解为"找到时返回非负索引"。
在举例两个数组
在举例两个数组
int[] i=new int[]{1,2};
int[] j=new int[]{2,3};
List<int> r = new List<int>();
r.AddRange(i);
r.AddRange(j); 合并数组
int[] c = r.ToArray();
int[] x=i.Union(j).ToArray<int>(); //剔除重复项
int[] x=i.Concat(j).ToArray<int>(); //保留重复项
int n = Array.BinarySearch(i,3);//判断数组中是否包含某个值.如果包含则返回0
完成判断
以上操作涵盖了C#中常见的集合与数组处理方法,通过选择合适的扩展方法可以实现不同的需求。
简要总结
以上就是C#对多个集合和数组的操作方法(合并,去重,判断)的详细内容,更多关于C#集合与数组操作的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













