C# 对多个集合和数组的操作(合并、去重复、判断)

例如:
List  listA=new List{1,2,4,5,7}
List  listB=new List{1,3,6,8}

listA.AddRange(listB);
List Result=listA.Union(listB).toList();//删除重复项
List Result=listA.Concat(listB).toList();//保留重复项
listA.BinarySearch("1");判断集合中是否包含某个值,如果包含则返回0。

举例两个数组:
int i[]=new int[]{1,2,3};
int j[]=new int[]{4,5,6};
List r=new List();
r.AddRange(i);
r.AddRange(j);
int c[]=r.ToArray();合并数组
int x[]=i.Union(j).toArray();//删除重复项
int x[]=i.Concat(j).toArray();//保留重复项
int n=Array.BinarySearch(i,3);判断集合中是否包含某个值,如果包含则返回0。

 

 

   public static class CommonHelper
    {
        ///


        /// 自定义Distinct扩展方法
        ///

        /// 要去重的对象类
        /// 自定义去重的字段类型
        /// 要去重的对象
        /// 获取自定义去重字段的委托
        ///
        public static IEnumerable MyDistinct(this IEnumerable source, Func getfield)
        {
            return source.Distinct(new Compare(getfield));
        }
    }

    public class Compare : IEqualityComparer
    {
        private Func _getField;
        public Compare(Func getfield)
        {
            this._getField = getfield;
        }
        public bool Equals(T x, T y)
        {
            return EqualityComparer.Default.Equals(_getField(x), _getField(y));
        }
        public int GetHashCode(T obj)
        {
            return EqualityComparer.Default.GetHashCode(this._getField(obj));
        }
    }

你可能感兴趣的:(静态方法)