2

我可以选择把两个钥匙放在哪里;

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

如果 key1 比 key2 小 32 倍

我应该实施哪一个以获得最大速度?

重要吗?

有没有更好的方法来实现它?

4

2 回答 2

2

通过实现复合键,您可能会获得最佳性能:

struct Key { key1; key2; }

实现EqualsGetHashCode为此(更好的是IEquatable<Key>接口)。

使用这种模式,您只需要一个字典和一个哈希查找。

于 2012-09-13T12:27:38.587 回答
1

所以在玩耍之后,我选择了这个解决方案;

  int[,][] myDict;

代替

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

或两个键的元组或结构

于 2012-09-14T15:37:14.243 回答