我有很长的Id(整数)列表,它们代表数据库中当前存在的所有项目:
var idList = GetAllIds();
我还有另一个巨大的通用列表,其中包含要添加到数据库中的项目:
List<T> itemsToAdd;
现在,我想从ID列表中已有ID的通用列表中删除所有项目。
当前idList是一个简单的数组,我减去这样的列表:
itemsToAdd.RemoveAll(e => idList.Contains(e.Id));
我很确定这可能会快得多,所以我应该对两个集合使用哪种数据类型,以及将它们相减的最有效方法是什么?
谢谢!
最佳答案
暂时将idList
转换为HashSet<T>
并使用相同的方法,即:
items.RemoveAll(e => idListHash.Contains(e.Id));
它应该更快
关于c# - 如何在C#中从另一个有效地减去一个巨大的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5091922/