0

我想清除并处理 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);

谢谢,拉里

4

1 回答 1

3

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

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

您收到错误是因为在其构造函数中List<T>需要 a 。IEnumerable<T>您的收藏没有实现该接口。

此外,您还必须像 jrummell 指出的那样在处置它们之后清除集合。

于 2012-06-26T16:48:24.817 回答