小编典典

.NET集合提供最快的搜索

c#

我有60k项需要对照20k的查找列表进行检查。是否有一个集合对象(如ListHashTable),提供了一个exceptionly快速Contains()的方法?还是我必须自己写?换句话说,默认Contains()方法是仅扫描每个项目,还是使用更好的搜索算法。

foreach (Record item in LargeCollection)
{
    if (LookupCollection.Contains(item.Key))
    {
       // Do something
    }
}

注意 。查找列表已排序。


阅读 301

收藏
2020-05-19

共1个答案

小编典典

在最一般的情况下,请考虑将其System.Collections.Generic.HashSet作为默认的“包含”主力数据结构,因为评估需要花费固定的时间Contains

对“什么是最快的可搜索集合”的实际答案取决于您的特定数据大小,有序性,散列成本和搜索频率。

2020-05-19