Лучший способ проверить равенство двух EntitySets на основе одного из их свойств?
У меня есть два объекта из одного класса, скажем, он назван как Class1
, Class1
имеет EntitySet
из ClassChild
,
Как лучше всего указать, что эти два объекта имеют одинаковую ClassChild's
EntitySets
(значения и количество) на основе одного свойства 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())