Лучший способ проверить равенство двух EntitySets на основе одного из их свойств? - PullRequest
0 голосов
/ 17 июля 2011

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

Спасибо.

1 Ответ

2 голосов
/ 17 июля 2011

Вы можете использовать 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())
...