我有两个集合(通用列表),我们称之为ListA和ListB.
在ListA中,我有一些类型为A的项目.在ListB中,我有一些类型B的项目具有与ListA中的项目相同的标识(但不是同一类型),还有更多项目.我想删除ListB中与ListA中ID相同的所有项目.这样做的最佳方法是什么?Linq对象很合适吗?你会用什么算法?
例
ListA:ItemWithID1,ItemWithID2¨
ListB:ItemWithID1,ItemWithID2,ItemWithID3,ItemWithID4
编辑:我忘记在原始问题中提到ListA和ListB不包含相同的类型.因此,比较它们的唯一方法是通过.Id属性.这使我到目前为止得到的答案无效.
这有两个选择.不确定哪一个更快.
listB.RemoveAll(listA.Contains); foreach (string str in listA.Intersect(listB)) listB.Remove(str);