Невозможно преобразовать из 'System.Web.UI.ControlCollection' в 'System.Collections.Generic.IEnumerable<System.Web.UI.Control>'

Я хотел бы очистить и утилизировать все компоненты внутри панели asp:. Я получаю сообщение об ошибке:

невозможно преобразовать из '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 ответ

Решение

Вам не нужно сначала создавать список. Вы можете перебрать свою коллекцию Controls.

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

Вы получаете ошибку, потому что List<T> ожидает IEnumerable<T> в своем конструкторе. Ваша коллекция не реализует этот интерфейс.

Также вы должны очистить коллекцию после того, как вы удалили их, как указано на jrummell.

Другие вопросы по тегам