IEqualityComparer比较器


///// <summary>
///// Demo比较器(key)
///// </summary>
internal sealed class DemoEqualityComparer1 : IEqualityComparer<Demo>
{
    public bool Equals(Demo x, Demo y)
    {
        if (ReferenceEquals(x, y))
        {
            return true;
        }
        if (x is null || y is null)
        {
            return false;
        }
        if (x.GetType() != y.GetType())
        {
            return false;
        }
        return Equals(x.Key, y.Key);
    }

    public int GetHashCode(Demo obj)
    {
        if (obj.Key == null)
        {
            return 0;
        }
        return obj.Key.GetHashCode();
    }
}

private static readonly IEqualityComparer _Demo_ComparerByKey = new DemoEqualityComparer1();
var rslt = demoList.Distinct(_Demo_ComparerByKey);

posted @ 2020-10-10 17:43  wesson2019  阅读(261)  评论(0编辑  收藏  举报