根据其中一个属性检查两个实体集相等的最佳方法?

时间:2011-07-17 10:20:19

标签: c# linq equality entityset

我有两个来自同一个类的对象,我们说它名为Class1Class1的{​​{1}}为EntitySet
根据{{​​1}} ClassChild ClassChild's值和计数)的最佳方法是什么>(字符串一)?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用SequenceEqual - 方法:

bool equal = obj1.ClassChildren.SequenceEqual(obj2.ClassChildren)

使用默认的相等比较器来使用自定义比较器,请参阅HERE或此示例:

class ClassChildComparer : IEqualityComparer<ClassChild>
{
    public bool Equals(ClassChild x, ClassChild y)
    {
        return x.Property == y.Property;
    }

    // If Equals() returns true for a pair of objects then GetHashCode() must return the same value for these objects.
    public int GetHashCode(ClassChild c)
    {
        return c.Property.GetHashCode();
    }

}

//and then:

bool equal = obj1.ClassChildren.SequenceEqual(obj2.ClassChildren, new ClassChildComparer())