gpt4 book ai didi

c# - 从一个集合中删除另一个集合中的项目

转载 作者:太空狗 更新时间:2023-10-29 22:11:41 25 4
gpt4 key购买 nike

我有两个集合(通用列表),我们称它们为 ListA 和 ListB。

在 ListA 中,我有一些类型 A 的项目。在 ListB 中,我有一些类型 B 的项目,它们与 ListA 中的项目具有相同的 ID(但类型不同),还有更多。我想从 ListB 中删除所有与 ListA 中具有相同 ID 的项目。这样做的最佳方法是什么? Linq to objects 很合适吗?你会使用什么算法?

例子

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);

关于c# - 从一个集合中删除另一个集合中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/244408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com