Возможно ли выполнить объединение/исключение в списках объектов, где экземпляр объектов не обязательно один и тот же, но они функционально эквивалентны?Union/За исключением списков с разными экземплярами объектов
Что я имею в виду, если у меня есть класс, как это,
Class A
{
String a;
int b;
double c;
}
И я следующие списки:
A foo = new A() {"a",2,3.4}
A bar = new A() {"a",2,3.4}
List<A> firstList = new List<A>() { foo }
List<A> secondList = new List<A>() { bar }
Как я могу выполнить firstList.Except/Союз на secondList если firstList и у secondList были совершенно разные экземпляры объектов, но поля/свойства объектов были точно такими же?
Как насчет переопределения метода 'object.Equals()'? Тогда все методы Linq, которые проверяют равенство, будут использовать ваш метод, который должен проверять равенство на основе полей. – feralin
И если вы переопределите метод 'Equals', вы также должны переопределить метод GetHashCode. – Servy
На самом деле, я добавлю это как ответ. – feralin