У меня есть вложенный цикл while внутри цикла foreach, где я хотел бы продвигать перечислитель неопределенно, пока выполняется определенное условие. Чтобы сделать это, я пытаюсь привести перечислитель к IEnumerator (который должен быть, если он находится в цикле foreach), а затем вызвать MoveNext () для приведенного объекта, но это дает мне ошибку, говорящую, что я не могу преобразовать его.
Невозможно преобразовать тип 'System.DateTime' в System.Collections.Generic.IEnumerator с помощью преобразования ссылок, преобразования в бокс, преобразования в коробку, преобразования в оболочку или преобразования нулевого типа.
foreach (DateTime time in times)
{
while (condition)
{
// perform action
// move to next item
(time as IEnumerator<DateTime>).MoveNext(); // will not let me do this
}
// code to execute after while condition is met
}
Каков наилучший способ вручную увеличить IEnumerator внутри цикла foreach?
EDIT:
Отредактировано, чтобы показать, что после цикла while есть код, который я хотел бы выполнить, как только будет выполнено условие, поэтому я хотел вручную увеличивать значение в while, а затем прерывать его, а не продолжать, что вернуло бы меня наверх. Если это невозможно, я считаю, что лучше всего изменить дизайн, как я это делаю.