Lista1 zawiera pozycje {A, B} i List2 zawiera pozycje {A, B, C}.Używanie Linq, chyba że nie działa tak jak myślałem
Potrzebuję zwrócić {C}, gdy używam Z wyjątkiem rozszerzenia Linq. Zamiast tego wracam {A, B} i jeśli odwracam listy w moim wyrażeniu, wynikiem jest {A, B, C}.
Czy nie rozumiem punktu Z wyjątkiem? Czy istnieje inne rozszerzenie, którego nie używam?
Przeanalizowałem i wypróbowałem wiele różnych stanowisk w tej sprawie bez powodzenia.
var except = List1.Except(List2); //This is the line I have thus far
EDIT: Tak ja porównując prostych obiektów. Nigdy nie używałem IEqualityComparer, było ciekawie się o tym dowiedzieć.
Dziękuję wszystkim za pomoc. Problem polegał na tym, że nie wprowadzano porównania. Połączony post na blogu i przykład poniżej, gdzie są pomocne.
Co dokładnie znajduje się na tych listach? –
Jaki jest typ danych Twoich produktów. Czy to klasa? Ten link może Ci pomóc http://stackoverflow.com/questions/1645891/why-isnt-except-linq-comparing-things-properly-using-iequatable – arunlalam
Są to proste obiekty z kilkoma właściwościami w danym momencie. Przejrzę twój link. – Schanckopotamus