IEqualityComparer用法(子类的比较)

//BaseHotelInfoEntity是一个继承BaseEntity的子类

public class BaseEntityEqualityComparer : IEqualityComparer<BaseHotelInfoEntity>
    {
        public bool Equals(BaseHotelInfoEntity x, BaseHotelInfoEntity y)
        {
            return ((BaseEntity)x).Id == ((BaseEntity)y).Id;
        }


        public int GetHashCode(BaseHotelInfoEntity obj)
        {
            return obj.ToString().GetHashCode();
        }
    }



//然后就可以在其他地方使用了,这里与非子类的实体类相比,唯一的区别就是需要转换到最顶层的父类否则比较无效。。。
hotels = hotels.Distinct(new BaseEntityEqualityComparer()).ToList();



你可能感兴趣的:(IEqualityComparer用法(子类的比较))