例如:
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
{
/// <summary>
/// 自定义Distinct扩展方法
/// </summary>
/// <typeparam name="T">要去重的对象类</typeparam>
/// <typeparam name="C">自定义去重的字段类型</typeparam>
/// <param name="source">要去重的对象</param>
/// <param name="getfield">获取自定义去重字段的委托</param>
/// <returns></returns>
public static IEnumerable<T> MyDistinct<T, C>(this IEnumerable<T> source, Func<T, C> getfield)
{
return source.Distinct(new Compare<T, C>(getfield));
}
}
public class Compare<T, C> : IEqualityComparer<T>
{
private Func<T, C> _getField;
public Compare(Func<T, C> getfield)
{
this._getField = getfield;
}
public bool Equals(T x, T y)
{
return EqualityComparer<C>.Default.Equals(_getField(x), _getField(y));
}
public int GetHashCode(T obj)
{
return EqualityComparer<C>.Default.GetHashCode(this._getField(obj));
}
}