解决方案 »

  1.   

    Dictionary是一个引用类型,=赋值只是将首地址付给了b,所以循环删除的时候还是不行。如果要删除,需要用b记录下需要删除的key,然后循环b,删除dict中的内容。
      

  2.   

    foreach (var a in b.Keys.Cast<int>().ToList())
      

  3.   

    看不太懂,求详解~
    b.Keys.Cast<int>().ToList()
    tolist()弄了一个拷贝
      

  4.   

      private void button2_Click(object sender, EventArgs e)
            {
                List<int> b = new List<int>();
                    foreach (var a in dict.Keys)
                    {
                       //某种操作得到我想要删除的key
                        b.Add(a);
                    }
                    foreach (var a in b)
                    {
                        dict.Remove(a);
                    }
                MessageBox.Show("ok");
            }
      

  5.   

    不是很明白你的设计思路,什么要在遍历keys中去完成操作
      

  6.   

    就是我需要根据key去进行一些判断,如果不符合就将其删除掉,用临时字典是因为我没理解清楚浅拷贝和深拷贝。