c# - 从不同集合中删除另一个列表的对象列表

标签 c# linq

我正在尝试更加努力地研究这些结构,但我绝对不认为它们具有演绎性。例如,当我得到 2 个相同类型的列表( List )时,我已经编写了类似上面的代码:

listA.RemoveAll(x => !listB.Any(y => y.ID == x.ID));

现在,假设我有相同的列表,但它们来自不同的集合(列表的每个成员都有不同的属性),并且我想从列表 A 中删除不具有相同 ID 的所有成员将元素放入列表 B 中。

两个集合都有一个要比较的 int ID 属性。

最佳答案

您可以选择有效的项目,如下所示,而不是从列表中删除:

listA = listA.Where(x=>listB.Any(y=>y.ID == x.ID)).ToList();

关于c# - 从不同集合中删除另一个列表的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860949/

相关文章:

sql - Linq to Entities 简单组查询

c# - 语言特性 vs 框架特性

c# - 为什么要有一个不做任何特殊事情的内部构造函数?

c# - 如何在不知道键类型和值类型的情况下遍历 KeyValuePair 的枚举

c# - 为什么 Select() 不将 IEnumerable<dynamic> 转换为 IEnumerable<StrongType>?

c# - Linq 从 List<string> 中包含

linq - LINQ Lambda-在一个列表中查找所有ID,而在另一个列表中不存在

javascript - 无法将html表数据绑定(bind)到mvc Controller 模型

c# - 正则表达式检索第一个斜线之前的所有内容

c# - Windows服务只执行一次