【问题标题】:Data Structure used for C#'s Dictionary.KeyCollection用于 C# 的 Dictionary.KeyCollection 的数据结构
【发布时间】:2012-09-10 15:16:07
【问题描述】:

我想保存一个在搜索特定元素时表现良好的字符串列表。如以下备忘单中所述,Dictionary 最适合此类操作:http://courses.essex.ac.uk/ce/ce318/www/documents/references/cSharpDataStructuresCheatSheet.pdf 但是,我不需要字典,因为我只存储字符串,而不是键值对(即我只对键感兴趣)。有谁知道字典用于其键的数据结构? KeyCollection 似乎只对 Dictionary 可用。我的猜测是它使用了某种散列算法,但想知道是否有人对此有任何见解? 提前致谢。

【问题讨论】:

标签: c# performance data-structures dictionary hashset


【解决方案1】:

您可以使用HashSet<string>

【讨论】:

  • 根据该站点:dotnetperls.com/hashset - HashSet 的性能比 Dictionary 差。如果我们假设字典对其键集合使用哈希集,这似乎令人惊讶。
  • @JohnLBevan 你应该看看这是否足以解决问题。 ~30 NS 还不错。
  • 没错,这不是一个真正的问题 - 更具学术性。如果 Dictionary 必须比 HashSet 做更多的事情,奇怪的是它应该更快。解释是 Dictionary 因此有一个更快的数据结构可用于它的 keycollection,所以奇怪的是它不能作为它自己的数据结构使用。不过感谢您的帮助 - 非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2023-03-16
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多