从第二个列表中获取唯一元素

时间:2015-02-13 15:22:45

标签: c# linq

来自两个列表existAccountnewAccounts

List<string> existAccount = new List<string>() 
{ 
    "123123123123123123", 
    "111111111111111111", 
    "555555555555555555" 
};
List<Acc> newAccounts = new List<Acc>() 
{
    new Acc{Number="111111111111111111", SubId = 5},
    new Acc{Number="123123123123123123", SubId = 9},
    new Acc{Number="333333333333333333", SubId = 7},
    new Acc{Number="444444444444444444", SubId = 2}
};

我想只获取Acc元素,其中acc.Number不存在于第一个列表中。所以输出应该是:

new Acc{Number="333333333333333333", SubId = 7},
new Acc{Number="444444444444444444", SubId = 2}

我正在尝试var result = newAccounts.Select(a => a.Number).Except(existAccounts),但在这种情况下我不会SubId

1 个答案:

答案 0 :(得分:7)

试试这段代码:

var result = newAccounts.Where(x => !existAccount.Contains(x.Number)).ToList()

这将为您提供AccNumber不存在的所有existAccount个对象。