Я самонаводящийся программист новичка, и я чувствую, что это действительно основной вопрос, какой я мог бы ответить, если бы я действительно изучал информатику : P В моем поиске интертронов и StackOverflow я не смог найти ответ, который я ищу. Поэтому я надеюсь, что кто-то может побаловать меня.Петля через коллекцию объектов n за раз
У меня есть коллекция объектов. Я хочу работать с ними по пять за раз, а затем переходить к следующим пяти. Контекст перезагружает кучу виртуальных машин; Меня попросят пошатнуть их, чтобы хосты не захлопали со всеми перезагрузками виртуальных машин сразу.
Я чувствую, что правильный путь - это петля for i
в некотором качестве, а не foreach
. Я также чувствую, что это может быть комбинация do-until
и for i
, но я не могу отфильтровать ответ из своего мозга.
Возможно, я мог бы сделать это, удалив объекты из коллекции, но это похоже на «неправильный» способ сделать это, даже если это сработает.
Я делаю это с Powershell и PowerCLI, но я чувствую, что логика, которую я пытаюсь понять, более фундаментальна, чем быть зависимой от любого языка, поэтому, даже если вы не знакомы с Powershell, м интересуется вашим ответом.
Edit: На основании ответа Давида ниже, следующий код, кажется, что я ищу:
$someLetters = @("a","b","c","d","e","f","g","h","i","j","k")
for($i=0; $i -lt $someLetters.length; $i+=5)
{
Write-Host ("the letter is " + $someLetters[$i] + " and i is " + $i)
Write-Host ("the letter is " + $someLetters[$i+1] + " and i is " + $i)
Write-Host ("the letter is " + $someLetters[$i+2] + " and i is " + $i)
Write-Host ("the letter is " + $someLetters[$i+3] + " and i is " + $i)
Write-Host ("the letter is " + $someLetters[$i+4] + " and i is " + $i)
write-host "finished block of five"
}
дает выход:
the letter is a and i is 0
the letter is b and i is 0
the letter is c and i is 0
the letter is d and i is 0
the letter is e and i is 0
finished block of five
the letter is f and i is 5
the letter is g and i is 5
the letter is h and i is 5
the letter is i and i is 5
the letter is j and i is 5
finished block of five
the letter is k and i is 10
the letter is and i is 10
the letter is and i is 10
the letter is and i is 10
the letter is and i is 10
finished block of five
Спасибо вам Давида!
Интересный вопрос. Мне будет интересно с этим. –
Спасибо :) Я все еще экспериментирую, и я чувствую, что ответ прямо на кончике моего мозга. Настолько расстраивает, но одновременно то, что я люблю в программировании. – Formica
В несвязанной заметке обратите внимание, что двойные кавычки заменяют переменные на их значения. Поэтому '' i = $ i "будет писать' i = 0', а 'i = $ i' будет буквально писать' i = $ i'. –