2

両方のキーをどこに置くかを選択できます。

 Dictionary<key1, Dictionary<key2, int>>
 Dictionary<key2, Dictionary<key1, int>>

key1がkey2の32分の1の場合

最大速度を得るには、どれを実装する必要がありますか?

それは重要ですか?

それを実装するためのより良い方法はありますか?

4

2 に答える 2

2

おそらく、複合キーを実装することで最高のパフォーマンスが得られます。

struct Key { key1; key2; }

実装Equalsし、そのGetHashCodeために(さらに良いのはIEquatable<Key>インターフェース)。

このパターンでは、1つの辞書と1つのハッシュルックアップのみが必要です。

于 2012-09-13T12:27:38.587 に答える
1

それで、遊んだ後、私はこの解決策を選びました。

  int[,][] myDict;

それ以外の

  Dictionary<int, Dictionary<int, int>> myDict;

または両方のキーのタプルまたは構造体

于 2012-09-14T15:37:14.243 に答える