using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ShwasherSys { public static class ListHelper { /// /// 自定义Distinct扩展方法 /// /// 要去重的对象类 /// 自定义去重的字段类型 /// 要去重的对象 /// 获取自定义去重字段的委托 /// public static IEnumerable MyDistinct(this IEnumerable source, Func getField) { return source.Distinct(new Compare(getField)); } } public class Compare : IEqualityComparer { private Func GetField { get; set; } public Compare(Func getField) { 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(GetField(obj)); } } }