Если стоит задача "обработать каждый элемент последовательности", то следует пользоваться инструментом, семантика которого состоит в "обработать каждый элемент последовательности", а не "произвести неопределённое количество неопределённых операций". Такой код гораздо более доступен, потому что не требует проверять каждую строчку, чтобы убедиться, что он нигде не стреляет в ногу.