2014-07-24 115 views
-2

我的目标是像寻找项目

class MyObject 
{ 
string FirstName, string LastName, string Phone 
} 

,我有这个对象的两个列表:

incomingList<MyObject> 
fullList<MyObject> 

我怎么能的名单事情是在incomingList但不是在fullList

+0

你以后有什么可能重复[LINQ - 比较两个列表(http://stackoverflow.com/questions/9524681/linq-compare-two-lists) – cadrell0

+0

@ cadrell0 NOP !这是一个正常的int类型,我的是一个自定义类型。他们是不同的。 – CutHimSomeSlack

+1

过载等于或提供相等比较器。它会工作。 – cadrell0

回答

4

使用Enumerable.Except

IEnumerable<MyObject> diffs = incomingList.Except(fullList); 
+5

不会编译,LINQ结果不是列表,除非你调用'.ToList()' –

+0

这也依赖于'MyObject'正确实现相等。 – vcsjones

+0

@BenVoigt正确,这是一个'var'会保存我的屁股的例子:)(编辑) – demoncodemonkey

3

Enumerable.Except

var result = incomingList.Except(fullList); 
+1

除了不编译。 – CutHimSomeSlack

+0

@CutHimSomeSlack:你得到的错误是什么? –

+0

@demoncodemonkey:你的意思是'MyObject'? –