gpt4 book ai didi

.net - 使用类的谓词来搜索通用列表 - 比循环更快?

转载 作者:行者123 更新时间:2023-12-02 17:34:16 27 4
gpt4 key购买 nike

假设我们有一个 Class1 的通用列表,通常给定 session 有大约 100 个对象。我想看看列表中是否有特定的对象。 ASP.NET 2.0 允许我这样做:

Dim objResult as Class1 = objList.Find(objSearch)

从性能角度来看,与传统的 For 循环相比,这种方法的性能如何?

随着列表长度的增加或减少,这会如何变化?

最佳答案

它与循环完全相同 - 这就是它内部的作用。

如果您的列表已排序并且您正在查找特定值,则可以使用 BinarySearch相反 - 但如果您考虑一下,如果您对谓词或数据顺序一无所知,那么它必须遍历每个项目直到找到匹配项。碰巧,Find 被指定返回列表中的第一个 项...因此它只是按照明显的顺序进行查找。

这与列表的大小成线性关系 - 即平均而言,搜索 10 倍大的列表将花费 10 倍的时间。当然,这取决于是否找到匹配以及在哪里找到匹配;如果第一个项目在每种情况下都匹配,那么无论列表有多大,它都会在同一时间完成:)

说实话,只有 100 个对象,听起来不太可能成为瓶颈。

关于.net - 使用类的谓词来搜索通用列表 - 比循环更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2750850/

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