【问题标题】:cannot convert from 'System.Web.UI.ControlCollection' to 'System.Collections.Generic.IEnumerable<System.Web.UI.Control>'无法从“System.Web.UI.ControlCollection”转换为“System.Collections.Generic.IEnumerable<System.Web.UI.Control>”
【发布时间】:2012-06-28 01:16:45
【问题描述】:

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

谢谢,拉里

【问题讨论】:

    标签: c# asp.net controlcollection


    【解决方案1】:

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

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

    您收到错误是因为 List&lt;T&gt; 在其构造函数中需要 IEnumerable&lt;T&gt;。您的集合没有实现该接口。

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

    【讨论】:

    • 您可能需要在循环和处理后清除集合。
    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多