重构,以便在 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. 将插入点置于 foreachFor Each 关键字中。

  2. 按 Ctrl+. 或单击代码文件边距中的螺丝刀Screwdriver icon图标。

    Convert to for menu

  3. 选择“转换为‘for’” 。 或者,选择“预览更改” 以打开“预览更改”对话框,然后选择“应用” 。

  4. 因为重构会引入一个新迭代计数变量,因此,“重命名” 框将出现在编辑器的右上角。 如果想要为变量选择不同名称,键入该名称,然后按“Enter”或选择“重命名”框中的“应用”。 如果不想选择新名称,按“Esc” 或选择“应用” 以关闭“重命名” 框。

备注

对于 C#,由这些重构生成的代码对集合中的项目类型使用显式类型或 var。 生成代码中的类型(显式或隐式)取决于范围内的代码样式设置。 这些特定的代码样式设置在“工具”>“选项”>“文本编辑器”>“C#”>“代码样式”>“常规”>“var 首选项”下以计算机级别进行配置,或在 EditorConfig 文件下以解决方案级别进行配置。 如果在“选项” 中更改了代码样式设置,请重新打开代码文件以使更改生效。

另请参阅