字典<char,char>不起作用</char,char>

时间:2014-02-04 22:09:23

标签: c# dictionary

修改 所以,事实证明我无法在foreach循环中修改字典(感谢您指出这一点)。 这是一个混乱的代码,它可以做我想要的:

        static void Main(string[] args)
    {
        Dictionary<char, char> dicP = new Dictionary<char, char>();
        bool done=false;
        char done1;
        char key, val;
        int ctr=0;
        while (!done&&ctr<13)
        {
            Console.WriteLine("are you done?");
            done1 = char.Parse(Console.ReadLine());
            if (done1 == 'n')
            {
                Console.WriteLine("please choose Key and Val");
                key = char.Parse(Console.ReadLine());
                val = char.Parse(Console.ReadLine());
                dicP.Add(key, val);
                dicP.Add(val, key);
                ctr++;
            }
            else
                done = true;
        }
            foreach (KeyValuePair<char,char> dic in dicP)
            {
                Console.WriteLine(dic.Key+" "+dic.Value);
            }
        }

是否有任何非延迟方式来实现相同的目标(将字典中的现有值添加到字典中作为其自己的键的键)? *不是要求代码,而是提示。

1 个答案:

答案 0 :(得分:4)

您不能在foreach循环中更改该具体字典中的字典:

foreach (KeyValuePair<char,char> dic in dicP)
{
    dicP.Add(dic.Value, dic.Key);
}

您尝试在同一个dictP字典中更改foreach循环中的dictP字典。这是不允许的。