C# · 12月 25, 2021

c# – 添加到字典中的字典

这是我的第一篇文章!

我不是一个特别自信的程序员,但我到了那里.

我的问题是我有一个

@H_404_6@static Dictionary<string,Dictionary<string,List<string>>> testDictionary = …

如果Dictionary不包含当前键(字符串),我可以轻松添加键和另一个已填充的字典,如此…

@H_404_6@testDictionary.Add(userAgentResult,allowDisallowDictionary);

这工作正常,当我尝试添加内部字典时,如果userAgentResult Key已经存在,我的问题就来了.

我希望这样做……

@H_404_6@testDictionary[userAgentResult].Add(allowDisallowDictionary);

但.Add方法需要两个参数,即字符串键和列表值.所以我继续写这段代码……

@H_404_6@//this list as the dictionary requires a list List<string> testDictionaryList = new List<string>(); //this method returns a string testDictionaryList.Add(regexForm(allowResult,url)); //this will add the key and value to the inner dictionary,the value,and then //add this value at the userAgentKey testDictionary[userAgentResult].Add(allowDisallowKey,testDictionaryList);

这也有效,我的问题是这个字典被添加了很多次,而当内部字典已经包含了试图添加的密钥时,它显然是错误的.所以当

解决方法 在这种情况下,您需要做的是不在内部字典中添加条目.您需要将值添加到外部字典的键值对.只有这次价值恰好是另一个字典:)

testDictionary [userAgentResult] = allowDisallowDictionary;