一个唯一值需要两个键的集合

本文关键字:两个 集合 一个 唯一 | 更新日期: 2023-09-27 17:54:01

我想知道是否有人知道存储数据的好方法,以便用两个键对其进行索引。基本上,我需要一个类似表的东西(上行是key1,左列是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<Tuple<int, int>, char>

如果你运行的是。net 4,你应该看看Tuple类。

IDictionary<Tuple<K1, K2>, V> -这是表示双键字典的正确方法。