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

C# 如何返回字典C中给定2个参数的对象类型#,c#,dictionary,C#,Dictionary,我想建立一个由2个键和1个值组成的字典。可能吗 Dictionary<(key1, key2), Type> dict = new Dictionary<(key1, key2), Type>(); 但是,我要查找的对象加载了来自DB的数据,并且可能填充了许多属性 问题是,当我使用TryGetValue时,什么也不返回,所以我认为这是因为它是通过同一个引用查找的,而这是不一样的 问题是,我如何用2个键(STRING,STRING)和1个返回值(TYPE)简单地构建字典

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

Dictionary<(key1, key2), Type> dict = new Dictionary<(key1, key2), Type>();
但是,我要查找的对象加载了来自DB的数据,并且可能填充了许多属性

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

问题是,我如何用2个键(STRING,STRING)和1个返回值(TYPE)简单地构建字典


谢谢

我不知道你说的两把钥匙是什么意思。如果您想要一个包含两个值的键,请使用Tuple,例如

Dictionary<Tuple<int, int>, string>
字典
另一个选择是使用字典中的字典,例如

Dictionary<int, Dictionary<int, string>>
字典

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

Dictionary<Tuple<int, int>, string>
字典
另一个选择是使用字典中的字典,例如

Dictionary<int, Dictionary<int, string>>
字典

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

Dictionary<Tuple<int, int>, string>
字典
另一个选择是使用字典中的字典,例如

Dictionary<int, Dictionary<int, string>>
字典

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

Dictionary<Tuple<int, int>, string>
字典
另一个选择是使用字典中的字典,例如

Dictionary<int, Dictionary<int, string>>
字典

我将使用以下方法:

Dictionary<Tuple<string, string>, Type>
字典
从此处的msdn页面:

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

在dict中添加以下内容:

dict.Add(new Tuple<string,string>(myObject.Key1, myObject.Key2), (Type)objType);
dict.Add(新元组(myObject.Key1,myObject.Key2),(Type)objType);

我将使用以下方法:

Dictionary<Tuple<string, string>, Type>
字典
从此处的msdn页面:

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

在dict中添加以下内容:

dict.Add(new Tuple<string,string>(myObject.Key1, myObject.Key2), (Type)objType);
dict.Add(新元组(myObject.Key1,myObject.Key2),(Type)objType);

我将使用以下方法:

Dictionary<Tuple<string, string>, Type>
字典
从此处的msdn页面:

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

在dict中添加以下内容:

dict.Add(new Tuple<string,string>(myObject.Key1, myObject.Key2), (Type)objType);
dict.Add(新元组(myObject.Key1,myObject.Key2),(Type)objType);

我将使用以下方法:

Dictionary<Tuple<string, string>, Type>
字典
从此处的msdn页面:

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

在dict中添加以下内容:

dict.Add(new Tuple<string,string>(myObject.Key1, myObject.Key2), (Type)objType);
dict.Add(新元组(myObject.Key1,myObject.Key2),(Type)objType);

您的自定义类应该有2个重写方法:
GetHashCode
Equals
最简单的方法是使用分隔符将字符串连接在一起,并将其用作键…自定义类应具有2个重写方法:
GetHashCode
Equals
最简单的方法是使用分隔符将字符串连接在一起,并将其用作键…自定义类应具有2个重写方法:
GetHashCode
Equals
最简单的方法是使用分隔符将字符串连接在一起,并将其用作键…您的自定义类应该有2个重写方法:
GetHashCode
Equals
最简单的方法是使用分隔符将字符串连接在一起,并将其用作键…好的,我开始理解了。也许这就是我要找的。但是,我怎样才能在这两种情况下找到我的价值呢?在我看来,第一种情况看起来更干净。您可以像访问字典一样访问它的值。字符串值=dict[新元组(1,1)];好了,我开始明白了。也许这就是我要找的。但是,我怎样才能在这两种情况下找到我的价值呢?在我看来,第一种情况看起来更干净。您可以像访问字典一样访问它的值。字符串值=dict[新元组(1,1)];好了,我开始明白了。也许这就是我要找的。但是,我怎样才能在这两种情况下找到我的价值呢?在我看来,第一种情况看起来更干净。您可以像访问字典一样访问它的值。字符串值=dict[新元组(1,1)];好了,我开始明白了。也许这就是我要找的。但是,我怎样才能在这两种情况下找到我的价值呢?在我看来,第一种情况看起来更干净。您可以像访问字典一样访问它的值。字符串值=dict[新元组(1,1)];