Distinct()不能应用于某些实体,导致某些字段无法进行哈希处理(如文本字段)。
答案 0 :(得分:1)
毕竟当EntityObject需要Distinct时,我们只需要对实体键进行比较。 IEqualityComparer可以这样实现:
public class EntityObComparer : IEqualityComparer<EntityObject>
{
public bool Equals(EntityObject x, EntityObject y)
{
return x.EntityKey.Equals(y.EntityKey);
}
public int GetHashCode(EntityObject obj)
{
return obj.GetHashCode();
}
}
然后,distinct可以这样执行:
var foo = MyListOfEntityObjects.Distinct(new EntityObComparer());