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

标签 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.NumberAcc 元素。所以输出应该是:

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

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

最佳答案

试试这段代码:

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

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

关于c# - 从第二个列表中获取唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502845/

相关文章:

linq - 按日期过滤查询

c# - linq 连接错误

c# - LINQ 扩展方法 : use Lambda expressions or methods?

c# - 在读取SQL#的SQLite数据库上实现进度条

c# - 将模型集合中的一项发布到 MVC 中的 Controller 方法

linq - C# System.Linq.Lookup 类删除和添加值

c# - 结合分组和排序的 LINQ 查询

c# - 这个从两个 8 位值中找到 14 位值的函数的反面是什么?

c# - 尝试使用 DLL 结果出错

c# - 在 C# 中使用 mono 或 vim 在 unix 上自动查找必要但缺少的命名空间?