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