両方のキーをどこに置くかを選択できます。
Dictionary<key1, Dictionary<key2, int>>
Dictionary<key2, Dictionary<key1, int>>
key1がkey2の32分の1の場合
最大速度を得るには、どれを実装する必要がありますか?
それは重要ですか?
それを実装するためのより良い方法はありますか?
両方のキーをどこに置くかを選択できます。
Dictionary<key1, Dictionary<key2, int>>
Dictionary<key2, Dictionary<key1, int>>
key1がkey2の32分の1の場合
最大速度を得るには、どれを実装する必要がありますか?
それは重要ですか?
それを実装するためのより良い方法はありますか?
おそらく、複合キーを実装することで最高のパフォーマンスが得られます。
struct Key { key1; key2; }
実装Equals
し、そのGetHashCode
ために(さらに良いのはIEquatable<Key>
インターフェース)。
このパターンでは、1つの辞書と1つのハッシュルックアップのみが必要です。
それで、遊んだ後、私はこの解決策を選びました。
int[,][] myDict;
それ以外の
Dictionary<int, Dictionary<int, int>> myDict;
または両方のキーのタプルまたは構造体