Dictionary<string, object>
よりも優れたデータ構造を探しています。私はNアイテムを持っているマップを持っています - マップは一度構築され、その後、何度も何度も読み込まれます。プログラムの有効期間中はマップは変更されません(新しい項目が追加されず、削除された項目や並べ替えられていない項目はありません)。マップは変更されないため、マップを使用するアプリケーションが多量にマルチスレッド化されていても、スレッドセーフである必要はありません。私は、マップにないアイテムについてルックアップの約50%が起こると予想しています。追記型文字列からオブジェクトへのマップ
Dictionary<TKey, TItem>
は非常に速く、私はそれを使用することになるかもしれませんが、このシナリオではより高速な別のデータ構造があるのだろうかと思います。残りのプログラムは明らかにこのマップよりも高価ですが、パフォーマンス重視の部分で使用されています。できるだけ高速化したいと思います。
おそらく関連しています:[.NETには読み取り専用の汎用辞書がありますか?](http://stackoverflow.com/questions/678379/is-there-a-read-only-generic-dictionary-available- –
@ M.Babcock:ありがとうございますが、あなたのリンクは関連していません。私は地図を読み取り専用にしようとしていません - 私のアプリケーションはそれを一度構築してから変更しません。私は上記のシナリオのためにおそらくより速いデータ構造を見出そうとしています。もし何もないなら、私は 'Dictionary'でうまくいっていますが、速度を上げることができるのであれば私はまた興味があります。私もジェネリックマップは必要ありません。キーは 'string'で、アイテムは私の(特定の)クラスの一つです。 –
xxbbcc
私はそれを理解しましたが、実装がより効率的かどうかは分かりませんでした。それは大したことではない場合は、その実装は、標準の 'Dictionary'よりもわずかに薄いですが、私はそれが_slightly_(ただし目立たないほど)速いと思います。 –