2014-04-04 1 views
0

나는 C# 어플리케이션을 가지고있다. 두 가지 목록 ('NewStock'및 'OldStock')이 동일한 사용자 정의 유형 인 'Book'을 가지고 있습니다. NewStock 목록이지만 OldStock 목록에없는 모든 'Book'개체를 ResultList라는 새 목록으로 추출하고 싶습니다. 아래 예를 참조하십시오. 어떻게해야합니까?LINQ 두리스트를 비교하고 결과를 하나의리스트에 넣기

Book 개체에 IEqualityComparer 인터페이스를 구현하여 책 개체가 다른 개체와 같은지 확인했습니다.

List<Book> ResultList = NewStock.Select(x=>!OldStock.Contains(x)).ToList(); 
+6

'VAR 결과를 당신이를 제외하고'에 사용자 정의 비교자를 제공 할 수

예는 여기에서 찾을 수 있습니다 '이렇게해라. –

+1

@AdamHouldsworth는 대답을 –

+0

과 관련이 있습니다. http://stackoverflow.com/questions/3944803/use-linq-to-get-items-in-one-list-that-are-not-in-another -list – Bart

답변

4
var results = newStock.Except(oldStock).ToList() 

그리고 당신은 provide a custom comparerExcept에이 작업을 수행 할 수 있습니다 : 내가 좋아하는 것

NewStock  OldStock 
A    A 
B    C 
C    
D 

결과,

ResultList 
B 
D 
2

를 사용하여이 작업을 수행합니다 : = newStock.Except (oldStock) .ToList()` MSDN

관련 문제