Dictionary类返回空值

时间:2014-10-30 18:42:09

标签: c# dictionary

所以,我有一个我写的代码示例。

我的目标是为包含键(字符串)的字典类输入值,该值是另一个包含键(字符串)和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();
            }

1 个答案:

答案 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);
}