Распоряжение во время 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 (потому что, возможно, цикл повторно использует ресурсы, которые в противном случае хотелось бы удалить ())

Ответы на вопрос(1)

Ваш ответ на вопрос