Распоряжение во время foreach
В этом вопросе:Цикл через DirectoryEntry или любую иерархию объектов - C #
Предложенный ответ для обхода дерева LDAP заключается в
DirectoryEntry root = new DirectoryEntry(someDN);
DoSomething(root);
function DoSomething(DirectoryEntry de){
// Do some work here against the directory entry
if (de.Children != null) {
foreach (DirectoryEntry child in de.Children) {
DoSomething(child);
}
}
}
Мой вопрос: нужно ли вам вызывать Dispose () для каждого дочернего элемента в конце каждой итерации? или цикл foreach будет обрабатывать необходимые вызовы Dispose ()? или они просто не нужны в цикле foreach (потому что, возможно, цикл повторно использует ресурсы, которые в противном случае хотелось бы удалить ())