1

Distinct() 不能应用于某些实体,因为某些字段不能被散列(作为文本字段)。

4

1 回答 1

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());
于 2013-04-11T15:01:39.883 回答