Поделиться через


Рефакторинг кода для преобразования цикла for в оператор foreach и наоборот

В этой статье описан рефакторинг кода с помощью быстрых действий, который позволяет перейти с одной структуры выполнения цикла на другую. Здесь также описано, почему в некоторых случаях не стоит преобразовывать цикл for в оператор foreach в коде.

Преобразование цикла for в оператор foreach

Если у вас есть цикл for в коде, можно использовать этот рефакторинг кода для преобразования цикла в оператор foreach.

Область применения этого рефакторинга:

  • C#

  • Visual Basic

Примечание.

Рефакторинг с помощью быстрого действия Преобразовать в foreach доступен только для циклов for, которые содержат все три части: инициализатор, условие и итератор.

Для чего это нужно

Причины, из-за которых может потребоваться преобразование цикла for в оператор foreach, включают в себя:

  • Вы используете локальную переменную внутри цикла только в качестве индекса для доступа к элементу.

  • Вы хотите упростить код и уменьшить вероятность возникновения логических ошибок в инициализаторе, условиях и разделах итератора.

Использование

  1. Поместите курсор на ключевое слово for.

  2. Нажмите клавиши CTRL+ или щелкните значок отвертки Screwdriver icon в поле файла кода.

    Convert to foreach menu

  3. Выберите Преобразовать в foreach. Также можно выбрать Просмотр изменений, чтобы открыть диалоговое окно Просмотр изменений, и нажать Применить.

Преобразование оператора foreach в цикл for

Если у вас есть оператор foreach (C#) или For Each...Next (Visual Basic) в коде, их можно преобразовать в цикл for с помощью этого рефакторинга кода.

Область применения этого рефакторинга:

  • C#

  • Visual Basic

Для чего это нужно

Причины, из-за которых может потребоваться преобразование оператора foreach в цикл for, включают в себя:

Использование

  1. Поместите курсор на ключевое слово foreach или For Each.

  2. Нажмите клавиши CTRL+ или щелкните значок отвертки Screwdriver icon в поле файла кода.

    Convert to for menu

  3. Выберите Преобразовать в for. Также можно выбрать Просмотр изменений, чтобы открыть диалоговое окно Просмотр изменений, и нажать Применить.

  4. Так как в данном случае рефакторинг кода порождает новую переменную — счетчик итераций, в правом верхнем углу редактора появится поле Переименовать. Если необходимо выбрать другое имя для переменной, введите его и нажмите клавишу ВВОД или кнопку Применить в поле Переименовать. Если вы не хотите изменять имя, нажмите клавишу ESC или кнопку Применить, чтобы закрыть поле Переименовать.

Примечание.

Код C#, созданный в процессе выполнения рефакторинга, использует явный тип или ключевое слово var для этого типа элементов в коллекции. Тип в созданном коде (явный или неявный) зависит от параметров стиля кода, которые находятся в области. Эти параметры стиля кода настраиваются на уровне компьютера в разделе >"Параметры>текстового редактора текста" C#>Code Style>General'var> или на уровне решения в файле EditorConfig.> Если вы измените эти параметры в меню Параметры, снова откройте файл кода, чтобы изменения вступили в силу.

См. также