需要两个键才能获得唯一值的集合

我想知道是否有人知道一种存储数据的好方法,以便用两个密钥编制索引。 基本上,我需要像表一样的东西(top-row是key1,left-column是key2,字母是从索引返回的值):

[ ] [1] [2] [3] [4] [1] [A] [B] [C] [D] [2] [B] [E] [F] [G] [3] [C] [F] [H] [I] [4] [D] [G] [I] [J] 

我可以轻松地将其实现为多维数组,但由于表的一半总是相同的,因此它似乎是多余的。 到目前为止,我能想出的最佳解决方案涉及一个二维列表,第二个维度是一个可变长度,同时强制将两个键中较大或较小的一个首先编入索引。 这使表变为:

 [ ] [1] [2] [3] [4] [1] [A] [2] [B] [E] [3] [C] [F] [H] [4] [D] [G] [I] [J] 

有没有人有更好的想法?

编辑:我可能已经找到了自己的解决方案。 看评论。

我建议:

 Dictionary, char> 

除非你的桌子非常大。

如果你正在运行.NET 4,你应该看一下Tuple类。

IDictionary, V> – 这是表示2键字典的正确方法。