c#比较器辅助类

    /// <summary>
    /// 比较器帮助类
    /// 创建人:苏本东
    /// 创建时间:2019-11-5 11:52:29
    /// </summary>
    public class ComparerHelper<T> : IEqualityComparer<T>
    {
        private readonly Func<T, T, bool> _func;

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="func"></param>
        public ComparerHelper(Func<T, T, bool> func)
        {
            this._func = func;
        }

        /// <summary>
        /// 比较是否相等
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public bool Equals(T x, T y)
        {
            return this._func(x, y);
        }

        /// <summary>
        /// 返回哈希代码
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public int GetHashCode(T obj)
        {
            //说明:此场景,不管obj的hashcode还是obj.id的hashcode都不会相同
            //而如果hashcode不相同,就不会走到equals方法
            //所以我们这里必须返回相同的hashcode,只有这样,equals方法才有机会被执行
            return 1;
        }
    }

猜你喜欢

转载自www.cnblogs.com/subendong/p/11797570.html