![]() |
1
24
如果你
逻辑上
想要创建一个集合,在那里你可以根据客户的ID轻松地查找他们,我将使用某种形式的
现在你 能够 使用一个列表来做同样的事情,就像Leppie所说的,对于小数据集,它将以同样快的速度甚至更快的速度运行——但是对于小数据集,它将以非常快的速度运行,所以为什么你会在意呢?我认为更重要的是告诉你的代码的读者你要做的是收集-和一本字典实现这一目标远比一个列表,IMO有效得多。 |
![]() |
2
4
Linq不是魔法。它仍然需要遍历一个列表来查找所需的元素。字典仍然会更快(如Leppie指出的,对于合适大小的集合而言) |
![]() |
3
4
根据 MSDN 从基于键的字典中获取项“接近O(1)操作”。另一方面,执行 Where 在列表中循环遍历元素以查找匹配项。所以一般来说,字典肯定会更快。 如果您想加速LINQ操作,可以使用 Indexed LINQ 它允许在集合上放置索引。 |
![]() |
4
3
对于小于20项的列表,
|
![]() |
5
1
在这种操作中,LINQ通常会变慢。但是,在足够小的集合上(例如您的示例),由于开销的不同,它可能更快。然而,在一个足够小的集合(例如您的示例)上,两个解决方案之间的差异将非常小,以至于与字典查找还是where()读取更自然的问题没有多大关系。 |
![]() |
6
0
您可以使用SortedList并对此集合执行二进制搜索(考虑到它在第一次比较之后消除了一半的集合)。 |
![]() |
Giffyguy · 如何限制在构造向量后调用'resize()'? 3 年前 |
![]() |
vytaute · 返回表类型时Oracle函数中的类型错误 3 年前 |
![]() |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 3 年前 |
![]() |
dev-chicco · Laravel系列寻找常见物品 3 年前 |
![]() |
Mitch · Laravel-雄辩的单品合并系列 7 年前 |
![]() |
Kieran · 为什么类X可以从集合继承<X> 7 年前 |
![]() |
John · 如何在不返回集合本身的情况下返回集合的数据? 7 年前 |
![]() |
Niklas Mertsch · 在泛型集合中实现移除(对象o) 7 年前 |