0

キーが現在文字列である辞書があります

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

これらの文字列をハッシュ化された文字列に変更しようとしていたのは、ゲームで発生することがあり、このディクショナリのフレームごとのチェックに相当する可能性があり、文字列がディクショナリを介してルックアップを比較することを意味したくないため、 C#の文字列ハッシュ機能と、このページに出くわしました:

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

問題は、競合が発生する可能性があるため、私がやろうとしていることを正確に行うべきではないことをページが示唆していることです。私のような小さなデータ セット (おそらく 50 ~ 60 エントリ) の場合、これがどれほど大きな取引であるかはわかりませんが、同じことを行うための他の効率的な方法があるかどうか疑問に思っていました。

4

1 に答える 1

0

最初のコメントで @Jon Skeet が述べたように、ここにリストされているドキュメントによると、ディクショナリ コンテナーは既にルックアップ用に最適化されているようです: http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

「備考」セクションを参照してください。Dictionary クラスはハッシュ テーブルとして実装されているため、ルックアップ コストはほぼ O(1) です。

これについて詳しく知りたい人は、指定されたリンクのドキュメントを読むことをお勧めします。

ありがとう、ニック

于 2013-10-14T06:06:16.960 に答える