【问题标题】:Which is the best way to find if a key exists in C# SortedList?哪个是查找 C# SortedList 中是否存在键的最佳方法?
【发布时间】:2011-09-11 13:22:18
【问题描述】:

在 C# SortedList 中查找键是否存在的最佳方法是什么?

问题很清楚,我有一个SortedList 代表一个关联的数组。键和值都是字符串。我正在考虑扫描线性但二进制搜索更快,因为它是“排序的”。

我想知道是否有一种标准方法可以通过密钥找到该对,如 MSDN 中所述或一些流行的方法?

【问题讨论】:

  • 离题:我不明白您使用 SortedList(列表类型集合)进行查找。如果需要非唯一键,您是否调查过 Lookup 类? msdn.microsoft.com/en-us/library/bb460184(v=VS.90).aspx
  • 只是一种习惯,我不知道为什么我喜欢 SortedList 而不是其他 Dictioanry...通用...等等。

标签: c# .net search key sortedlist


【解决方案1】:

ContainsKey 是找出密钥是否存在的最佳方法。已经优化好了,不需要你自定义搜索算法:

"此方法使用二分搜索算法;因此,此 方法是一个 O(log n) 操作,其中 n 是 Count。"

【讨论】:

  • 听起来比“包含”更清晰,因为“包含”很容易混淆“键还是值?”。虽然正如我刚刚在 msdn 中读到的,它们的行为完全相同:) tks :)
猜你喜欢
  • 1970-01-01
  • 2010-09-18
  • 2017-10-06
  • 1970-01-01
  • 2014-01-31
相关资源
最近更新 更多