Danh sách 1 chứa các mục {A, B} và List2 chứa các mục {A, B, C}.Sử dụng LINQ Ngoại trừ không hoạt động như tôi nghĩ
Điều tôi cần phải được trả lại {C} khi tôi sử dụng Ngoại trừ phần mở rộng Linq. Thay vào đó tôi được trả về {A, B} và nếu tôi lật các danh sách trong biểu thức của tôi thì kết quả là {A, B, C}.
Tôi có hiểu nhầm điểm Ngoại trừ không? Có phần mở rộng nào khác mà tôi không thấy sử dụng không?
Tôi đã xem xét và thử một số bài đăng khác nhau về vấn đề này mà không thành công cho đến nay.
var except = List1.Except(List2); //This is the line I have thus far
CHỈNH SỬA: Có Tôi đã so sánh các đối tượng đơn giản. Tôi chưa bao giờ sử dụng IEqualityComparer, nó là thú vị để tìm hiểu về.
Cảm ơn tất cả vì sự giúp đỡ. Vấn đề không được thực hiện so sánh. Bài đăng trên blog được liên kết và ví dụ bên dưới hữu ích.
Danh sách đó có những gì chính xác? –
Loại dữ liệu của các mục của bạn là gì. Nó là một lớp sao? Liên kết này có thể giúp bạn http://stackoverflow.com/questions/1645891/why-isnt-except-linq-comparing-things-properly-using-iequatable – arunlalam
Chúng là những đối tượng đơn giản với một vài thuộc tính cho thời điểm này. Tôi sẽ xem qua liên kết của bạn. – Schanckopotamus