如何返回一个对象在字典C#中给出2个参数的类型

时间:2013-10-30 03:38:48

标签: c# dictionary

我想构建一个由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)构建我的字典。

由于

2 个答案:

答案 0 :(得分:2)

不确定你的意思是2键。如果您想要一个包含两个值的键,请使用Tuple,例如

Dictionary<Tuple<int, int>, string>

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

Dictionary<int, Dictionary<int, string>>

答案 1 :(得分: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);