gpt4 book ai didi

.net - List.Contains() 很慢?

转载 作者:行者123 更新时间:2023-12-03 05:09:24 25 4
gpt4 key购买 nike

谁能解释一下为什么泛型 List.Contains()功能这么慢?

我有一个List<long>大约有一百万个数字,以及不断检查这些数字中是否有特定数字的代码。

我尝试使用 Dictionary<long, byte> 做同样的事情和 Dictionary.ContainsKey()函数,比 List 快大约 10-20 倍。

当然,我真的不想将 Dictionary 用于此目的,因为它本来就不应该这样使用。

所以,这里真正的问题是,是否有 List<T>.Contains() 的替代方案? ,但不像Dictionary<K,V>.ContainsKey()那么古怪?

最佳答案

如果您只是检查是否存在,.NET 3.5 中的 HashSet<T> 是您的最佳选择 - 类似字典的性能,但没有键/值对 - 只是值:

    HashSet<int> data = new HashSet<int>();
for (int i = 0; i < 1000000; i++)
{
data.Add(rand.Next(50000000));
}
bool contains = data.Contains(1234567); // etc

关于.net - List<T>.Contains() 很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/823860/

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