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

时间:2011-10-22 16:33:42

标签: c# linq

我试图用这些结构更努力地工作,但是我没有看到他们演绎。当我得到2个相同类型的列表(List)时,我已经制作了类似上面的代码:

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

现在,我知道我有相同的列表,但它们来自不同的集合(在列表的每个成员中都有不同的属性),我想删除列表A中没有相同ID的所有成员将元素列入清单B.

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

1 个答案:

答案 0 :(得分:4)

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

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