Список1 содержит элементы {A, B} и List2 содержит элементы {A, B, C}.Использование Linq, за исключением того, что я не работаю, как я думал
Мне нужно, чтобы он был возвращен {C}, когда я использую расширение Linq. Вместо этого я возвращаюсь {A, B}, и если я переворачиваю списки в моем выражении, результат получается {A, B, C}.
Неужели я не понимаю смысл Исключить? Есть ли другое расширение, которое я не вижу?
Я просмотрел и попробовал несколько разных сообщений по этому вопросу без успеха до сих пор.
var except = List1.Except(List2); //This is the line I have thus far
EDIT: Да, я сравнивал простые объекты. Я никогда не использовал IEqualityComparer, было интересно узнать об этом.
Спасибо всем за помощь. Проблема заключалась не в применении компаратора. Связанное сообщение в блоге и пример ниже, где полезно.
Что именно в этих списках? –
Каков тип данных ваших товаров. Это класс? Эта ссылка может помочь вам http://stackoverflow.com/questions/1645891/why-isnt-except-linq-comparing-things-properly-using-iequatable – arunlalam
Это простые объекты с несколькими свойствами на данный момент. Я просмотрю вашу ссылку. – Schanckopotamus