IEqualityComparer用法(子類的比較)

//BaseHotelInfoEntity是一個繼承BaseEntity的子類 c#

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();
相關文章
相關標籤/搜索