所以,我有一个我写的代码示例。
我的目标是为包含键(字符串)的字典类输入值,该值是另一个包含键(字符串)和List值的字典。
问题是,在我清除innerDictionary
后,mainDictionary
内的值会消失。
List<string> list1 = new List<string>();
list1.Add("1");
list1.Add("2");
list1.Add("3");
List<string> list2 = new List<string>();
list2.Add("4");
list2.Add("5");
list2.Add("6");
List<string> list3 = new List<string>();
list3.Add("7");
list3.Add("8");
list3.Add("9");
List<string> list4 = new List<string>();
Dictionary<string, Dictionary<string, List<string>>> mainDictionary = new Dictionary<string, Dictionary<string, List<string>>>();
Dictionary<string, List<string>> innerDictionary = new Dictionary<string,List<string>>();
foreach (string s1 in list1)
{
foreach (string s2 in list2)
{
foreach(string s3 in list3)
{
list4.Add(s3);
}
innerDictionary.Add(s2, list4);
list4.Clear();
}
mainDictionary.Add(s1, innerDictionary);
innerDictionary.Clear();
}
答案 0 :(得分:1)
您需要在循环中创建新的词典和列表
foreach (string s1 in list1)
{
Dictionary<string,List<string>>() innerDictionary = new Dictionary<string,List<string>>();
foreach (string s2 in list2)
{
List<string>() list4 = new List<string>();
foreach(string s3 in list3)
{
list4.Add(s3);
}
innerDictionary.Add(s2, list4);
}
mainDictionary.Add(s1, innerDictionary);
}