日期:2014-05-17  浏览次数:20791 次

循环删除空间 foreach 出现问题,求助
Control.ControlCollection collecs = page.Controls;//page为一个Tabpage
int aa = page.Controls.Count;//此处aa值为4
foreach (Control control in page.Controls)
{
         if (control is ListView)
         {
          page.Controls.Remove(control);

          }

 }
现在要去判断page中的所有控件,把控件类型是Listview的删掉,现有以下问题
1、aa的值为page中控件的数量,即四个,但是foreach在执行时只会循环三次,不知道是那里出了问题?

------解决方案--------------------
for(int i=page.Controls.Count-1;i>=0;i--)
{
   if(page.Controls[i] is ListView)
      page.Controls.Remove(page.Controls[i]; //page.Controls.RemoveAt(i);
}
------解决方案--------------------
本帖最后由 caozhy 于 2013-03-28 20:17:51 编辑
foreach (Control control in page.Controls.Cast<Control>().ToList())