我想知道是否有人知道存储数据的好方法,以便用两个密钥编制索引。基本上,我需要像表一样的东西(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]
有没有人有更好的想法?
编辑:我可能已经找到了自己的解决方案。见评论。
答案 0 :(得分:1)
我建议:
Dictionary<Tuple<int, int>, char>
除非你的桌子非常大。
答案 1 :(得分:0)
如果您运行的是.NET 4,则应该查看Tuple
类。
IDictionary<Tuple<K1, K2>, V>
- 这是表示双键词典的正确方法。