在字典内的字典中添加键值对

nig*_*ler 4 c# dictionary key-value c#-4.0

我有一个字典 < string,object > ,它有一个字符串和一个字典 < string,int > 的映射。如何在内部字典 < string ,int > 中添加键值对?

Dictionary <string,object> dict = new Dictionary <string,object>();
Dictionary <string,int> insideDict = new Dictionary <string,int>();
// ad some values in insideDict
dict.Add("blah",insideDict);
Run Code Online (Sandbox Code Playgroud)

所以现在dict有一个用字符串映射的字典。现在我想单独向insideDict添加值。我试过

dict["blah"].Add();
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

Gil*_*een 7

你的意思是这样的吗?

var collection = new Dictionary<string, Dictionary<string, int>>();
collection.Add("some key", new Dictionary<string, int>());
collection["some key"].Add("inner key", 0);
Run Code Online (Sandbox Code Playgroud)


Rah*_*hul 5

像下面这样

Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("1", new Dictionary<string, int>());
Run Code Online (Sandbox Code Playgroud)

(OR) 如果您已经定义了内部字典,则

Dictionary<string, object> dict = new Dictionary<string, object>();
Dictionary<string, int> innerdict = new Dictionary<string, int>();
dict.Add("1", innerdict); // added to outer dictionary
string key = "1";
((Dictionary<string, int>)dict[key]).Add("100", 100); // added to inner dictionary
Run Code Online (Sandbox Code Playgroud)

根据您的评论尝试过这个但在某处搞砸了

您没有得到它的原因是您忘记将内部字典值转换为下面的行,Dictionary<string, int>因为外部字典值为object. 您应该将外部字典声明为强类型。

dict.Add("blah",insideDict); //forgot casting here
Run Code Online (Sandbox Code Playgroud)