Использование действия While или DoWhile вместо ForEach может быть лучшим вариантом для ограничений действия на управление итерацией. Это немного уродливее, но работает так, как вы хотите, чтобы ваша итерация.
Условное выражение может проверять логическое значение, такое как Broken
, и переменную счетчика, чтобы сравнить ее с длиной коллекций. Я не уверен, что это лучший вариант для вашего сценария или для коллекции, которую вы зацикливаете, но кажется приемлемым вариантом.