Нахождение симметричной разности двух списков объектов
Рассмотрим два списка (или другие подходящие структуры данных) объектов типа:
class Object
{
public string clause;
public string preamble;
public string description;
}
Мне нужно составить список этих объектов, которые НЕ подходят идеально (preamble
а также description
точно так же в обоих). Например, если в списке A есть запись,preamble
совпадает с таковым из списка B, но их description
не совпадают, его надо включить. Если ихdescription
совпадают, их не следует включать (это было бы частью их пересечения).
Я ходил по кругу, пытаясь найти решение, включая реализацию вложенных foreach
петли. Есть ли симметричная разностная функция дляList
, или любую другую подходящую структуру данных, которая может сравнивать объекты, сравнивая их члены следующим образом?
Для контекста один из списков представляет записи из электронной таблицы Excel, полученной с помощью библиотеки Epplus, а другой список представляет проблемы из Jira API.
1 ответ
Для этого нет удобного встроенного решения, вероятно, потому, что объект в.NET не является данными. Однако есть несколько проектов, полезных для решения вашей проблемы, например Compare.NET Objects, которые могут сравнивать объекты с помощью отражения и могут быть настроены для перечисления всех различий между двумя объектами.