c# - 什么 .NET 集合提供最快的搜索

标签 c# .net search collections

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

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

注意。查找列表已经排序。

最佳答案

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

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

关于c# - 什么 .NET 集合提供最快的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009107/

相关文章:

python - 如何在 django 中注册查找?

mongodb - Mongodb 按索引字段搜索

c# - 定义泛型方法

c# - 如何在 Outlook 中识别特定的约会项目

.net - 如何使用 Windows 为客户端和安全新手设置 WCF 传输安全?

c# - 尝试在 ASP.NET MVC3 View 中将 EditorFor 与 ICollection<string> 一起使用?

具有多个条件的 PHP MySQL 搜索

c# - 优化许多小文件的流式传输

c# - 如何访问 UserControl 上的控件?

c# - 如何将 AverageTimer32 和 AverageBase 性能计数器与 System.Diagnostics.Stopwatch 一起使用?