0

我有一本字典,其键目前是一个字符串

m_AllGameSounds = new Dictionary<string, soundFile>();

我希望将这些字符串更改为散列字符串,因为在我的游戏中发生的事情可能相当于对该字典的每帧检查,我真的不希望这意味着通过字典进行字符串比较查找,所以,我查找了C# 中的字符串哈希工具,偶然发现了这个页面:

http://msdn.microsoft.com/en-us/library/system.string.getashcode.aspx

问题是该页面建议我不应该完全按照我正在尝试做的事情去做,因为可能会发生冲突。我不确定这对于像我这样的小数据集(可能有 50 - 60 个条目)来说有多大意义,但是我想知道是否还有其他有效的方法可以做到这一点。

4

1 回答 1

0

正如@Jon Skeet 在第一条评论中所述,根据此处列出的文档,字典容器似乎已经针对查找进行了优化:http: //msdn.microsoft.com/en-us/library/xfhwa508.aspx

参考“备注”部分,查找成本接近 O(1),因为 Dictionary 类是作为哈希表实现的。

如果有人有兴趣了解更多信息,我建议阅读指定链接中的文档。

谢谢,尼克

于 2013-10-14T06:06:16.960 回答