0

我想构建一个由 2 个键和 1 个值组成的字典。那可能吗?

Dictionary<(key1, key2), Type> dict = new Dictionary<(key1, key2), Type>();

然后我想通过这两个键在我的字典中查找并获取类型。我试过 key1 和 key2 在这样的对象内

Dictionary<Object, Type> dict = new Dictionary<Object, Type>();

然后我在我的字典中添加了一个新的实例对象,其属性如下

//myObject has many attributes that are empty and I just fill this 2 ones to build my dict
Object myObject = new Object();
myObject.Key1 = "A";
myObject.Key2 = "B";
dict.Add(myObject, (Type)objType);

但是,我要查找的对象加载了数据库中的数据,并且可能填充了许多属性。

问题是当我使用 TryGetValue 时什么都不返回,所以我认为这是因为通过相同的引用查找是不一样的。

那么问题来了,我怎样才能以一种简单的方式用 2 个键(STRING、STRING)和 1 个返回值(TYPE)构建我的字典。

谢谢

4

2 回答 2

2

不知道你说的2键是什么意思。如果您想要一个包含两个值的键,请使用元组,例如

Dictionary<Tuple<int, int>, string>

另一种选择是使用字典字典,例如

Dictionary<int, Dictionary<int, string>>
于 2013-10-30T03:45:13.340 回答
1

我会使用以下内容:

Dictionary<Tuple<string, string>, Type>

从这里的 msdn 页面:

http://msdn.microsoft.com/en-us/library/dd270346.aspx

我相信 Tuple 的 Equals 方法已被覆盖,因此您应该在 Tuple 的内容而不是对象引用上获得键匹配。

添加到 dict 将是:

dict.Add(new Tuple<string,string>(myObject.Key1, myObject.Key2), (Type)objType);
于 2013-10-30T03:57:11.837 回答