我有一个C#应用程序。我有两个相同的自定义类型的列表('NewStock'和'OldStock')'Book'。我想将NewBook列表中的任何“Book”对象提取到名为ResultList的新列表中,但不在OldStock列表中。请看下面的例子。我该怎么做?
我已经使用在我的类Book上实现了IEqualityComparer接口,以便检查一个book对象是否等于另一个。
NewStock OldStock
A A
B C
C
D
结果我想,
ResultList
B
D
答案 0 :(得分:4)
var results = newStock.Except(oldStock).ToList()
您可以provide a custom comparer到Except
来执行此操作。
答案 1 :(得分:2)
使用除此之外:
示例可以在这里找到: MSDN
答案 2 :(得分:1)
试试这个:
List<Book> ResultList = NewStock.Select(x=>!OldStock.Contains(x)).ToList();