Лучший способ проверить равенство двух EntitySets на основе одного из их свойств?

У меня есть два объекта из одного класса, скажем, он назван как Class1, Class1 имеет EntitySet из ClassChild,
Как лучше всего указать, что эти два объекта имеют одинаковую ClassChild'sEntitySets (значения и количество) на основе одного свойства ClassChild (строка первая)?

Спасибо.

1 ответ

Решение

Вы можете использовать SequenceEqual-метод:

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

Это использует компаратор равенства по умолчанию, чтобы использовать собственный, см. ЗДЕСЬ или этот пример:

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())
Другие вопросы по тегам