Ручное увеличение счетчика внутри цикла foreach

У меня есть вложенный цикл 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?

РЕДАКТИРОВАТЬ: Отредактировано, чтобы показать, что после цикла while есть код, который я хотел бы выполнить после выполнения условия, поэтому я хотел вручную увеличить внутри while, а затем выйти из него, а не продолжить, что вернет меня наверх. Если это невозможно, я считаю, что лучше всего изменить то, как я это делаю.

6
задан Despertar 13 February 2012 в 01:12
поделиться