gpt4 book ai didi

c# - 加快性能 - LINQ 获取一个列表中不在另一个列表中的项目

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:04 25 4
gpt4 key购买 nike

我有两个列表,我试图返回不在另一个列表中的项目。这是我的代码:

var Results = ListOne.Where(x => ListTwo.All(a => a.EmployeeNum != x.EmployeeNum && a.Sched != x.Sched));

这大约需要 9-10 秒才能完成。 ListOne 大约有 1200 条记录,ListTwo 大约有 33000 条记录。

最佳答案

使用 HashSet<T> , 因为它有 O(1)搜索时间可以提高性能,例如

var hashSet = new HashSet<T>(ListTwo.Select(x => Tuple.Create(x.EmployeeNum, x.Sched)));
var results = ListOne.Where(x => !hashSet.Contains(Tuple.Create(x.EmployeeNum, x.Sched)));

关于c# - 加快性能 - LINQ 获取一个列表中不在另一个列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55504000/

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