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));
}
}
}