在字典内部添加一个字典的键值对

5

我有一个字典<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);

现在字典里有一个映射到字符串的字典。现在我想单独向insideDict中添加值。 我尝试过

dict["blah"].Add();

我哪里做错了?


@GiladGreen 已添加。 - chamcham
你在 .Add 之前添加的注释是不正确的 - 那一行代码将一个键为“blah”,值为 insideDict 的项添加到外部字典中。第二个 .Add - 你需要给这个函数传递一些参数 - 它需要另一个键和值(用于内部字典)。 - Gilad Green
@GiladGreen 那个评论是针对第二条语句的,意思是为innerDict添加一些键值对。 - chamcham
3个回答

9
你是说像这样的东西吗?
var collection = new Dictionary<string, Dictionary<string, int>>();
collection.Add("some key", new Dictionary<string, int>());
collection["some key"].Add("inner key", 0);

我想要能够向innerDict添加新的键值对。 - chamcham
就像我的第三行一样。当我执行collection["some key"]时,我得到了该键值的引用 - 这是一个字符串到整数字典。然后只需 .Add("some other key", 2); - Gilad Green

5

类似下面这样的东西

Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("1", new Dictionary<string, int>());

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

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

根据你的评论,“尝试了但在某处出错了”。
由于你的外部字典值是“object”,所以你没有成功,因为你忘记将内部字典值转换为“Dictionary”。 你应该声明具有强类型的外部字典。
dict.Add("blah",insideDict); //forgot casting here

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - chamcham
@vishallc,我已经解释了为什么你出现了问题。你可以再次检查答案。 - Rahul

0
Dictionary<string, Dictionary<string,TValue>> dic = new Dictionary<string, Dictionary<string,TValue>>();

将 TValue 替换为您的值类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接