gpt4 book ai didi

c# - LINQ 查询改进

转载 作者:行者123 更新时间:2023-11-30 18:01:07 25 4
gpt4 key购买 nike

过去两天我一直在用头撞墙,但我无法改善以下 LINQ 的时间安排。

from obj in list
from obj1 in list1
where (obj1.ClassesName.Contains(obj.ClassName) && obj1.Count> 0)
select new { result = obj1.ClassName})

我需要在 obj1.classesname 列表中搜索 obj.classname。在类名列表中找到后,我需要返回 obj1 类名。

我在列表中有 5000 个对象。

上述查询需要 30 多秒才能运行。我需要将这个时间缩短到 5 秒以内。

我很困惑,每一个帮助都很重要。

提前致谢。

最佳答案

一个明显的改进是移动 Count > 0 list1 的条件出来,所以你根本不必考虑这些项目:

from obj in list
from obj1 in list1.Where(x=> x.Count >0)
where (obj1.ClassesName.Contains(obj.ClassName))
select new { result = obj1.ClassName})

ClassesNameList<string>你也可以做一些预处理来使用 Hashtable<string>反而。这将使查找成为 O(1) 而不是 O(n),其中 n 是 list1 中的项目数。

关于c# - LINQ 查询改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441434/

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