2012-06-26 2 views
0

Я хотел бы очистить и избавиться от всех компонентов внутри asp: панель. Я получаю сообщение об ошибке:не может конвертировать из 'System.Web.UI.ControlCollection' в 'System.Collections.Generic.IEnumerable <System.Web.UI.Control>'

не может конвертировать из 'System.Web.UI.ControlCollection' в '' System.Collections.Generic.IEnumerable

Heres мой код:

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

Любые идеи о что мне нужно изменить в строке: List ctrls = new List (panelLayout.Controls);

Спасибо, Ларри

ответ

2

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

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

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

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

+1

Возможно, вам понадобится очистить коллекцию после прохождения цикла и удаления. – jrummell

+0

@jrummell thanks –

Смежные вопросы