在字典中搜索其键为“哈希字符串”的对象

时间:2013-10-14 05:42:52

标签: c# string hash dictionary

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

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

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

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

问题在于该页面表明我不应该完全按照我的意图去做,因为碰撞是可能的。我不确定这对于像我这样的小型数据集来说有多大的交易(可能是50-60个条目)但是,我想知道是否还有其他一些有效的方法来做同样的事情。

1 个答案:

答案 0 :(得分:0)

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

Ref#“备注”部分,查找成本几乎为O(1),因为Dictionary类实现为哈希表。

如果有人有兴趣了解更多相关信息,建议您在指定链接阅读文档。

谢谢, NIK