无法从'System.Web.UI.ControlCollection'转换为'System.Collections.Generic.IEnumerable <system.web.ui.control>'</system.web.ui.control>

时间:2012-06-26 16:45:28

标签: c# asp.net controlcollection

我想清除并处理asp:panel中的所有组件。我收到错误:

无法从'System.Web.UI.ControlCollection'转换为'System.Collections.Generic.IEnumerable'

继承我的代码:

List<Control> ctrls = new List<Control>(panelLayout.Controls);
panelLayout.Controls.Clear();
foreach (Control control in ctrls)
{
   control.Dispose();
}

关于我需要更改的任何想法:List ctrls = new List(panelLayout.Controls);

谢谢,拉里

1 个答案:

答案 0 :(得分:3)

您不必先创建列表。您可以迭代您的Controls集合。

foreach (Control control in panelLayout.Controls)
{
   control.Dispose();
}
panelLayout.Controls.Clear();

您收到错误是因为List<T>在其构造函数中需要IEnumerable<T>。您的收藏集未实现该界面。

此外,你必须在像jrummell指出的那样处理它们之后清除它。