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

Dam*_*anM 1 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}
};
Run Code Online (Sandbox Code Playgroud)

我想只获得第一个列表中不存在的Acc元素acc.Number.所以输出应该是:

new Acc{Number="333333333333333333", SubId = 7},
new Acc{Number="444444444444444444", SubId = 2}
Run Code Online (Sandbox Code Playgroud)

我在尝试,var result = newAccounts.Select(a => a.Number).Except(existAccounts)但在这种情况下,我没有得到SubId

Nik*_*tov 7

试试这段代码:

var result = newAccounts.Where(x => !existAccount.Contains(x.Number)).ToList()
Run Code Online (Sandbox Code Playgroud)

这将为您提供所有不存在的Acc对象.NumberexistAccount