次の方法で共有


for ループと foreach ステートメント間で変換するためのリファクタリング

この記事では、2 つのループ構造を変換するクイック アクション リファクタリングについて説明します。 コード内の for ループと foreach ステートメントを切り替える必要がある場合にはいくつかの理由があります。

for ループを foreach ステートメントに変換する

コード内に for ループがある場合、このリファクタリングを使用してそれを foreach ステートメントに変換できます。

このリファクタリングは以下に適用されます。

  • C#

  • Visual Basic

Note

['foreach' に変換] クイック アクション リファクタリングは、初期化子、条件、反復子の 3 つの部分をすべて含む 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. リファクタリングにより新しい反復回数変数が導入されるため、エディターの右上隅に [名前を変更] ボックスが表示されます。 変数に別の名前を選択する場合は、その名前を入力してから、Enter キーを押すか、[名前を変更] ボックスで [適用] を選択します。 新しい名前を選択しない場合は、Esc キーを押すか、[適用] を選択して、[名前を変更] ボックスを閉じます。

Note

C# の場合、これらのリファクタリングによって生成されるコードでは、コレクション内の項目の型には明示的な型または var が使われます。 生成されるコードが明示的または暗黙的のどちらになるかは、スコープ内にのコード スタイルの設定によって決まります。 これらの特定のコード スタイルの設定は、コンピューター レベルの [ツール]>[オプション]>[テキスト エディター]>[C#]>[コード スタイル]>[全般]>['var' を優先] で、またはソリューション レベルの EditorConfig ファイルで構成します。 コード スタイルの設定を [オプション] で変更した場合、変更を有効にするにはコード ファイルを開きなおします。

関連項目