foreach ループを LINQ に変換する
このリファクタリングは以下に適用されます。
- C#
概要:IEnumerables を使用する foreach ループを LINQ クエリまたは LINQ 呼び出し形式 (別名 LINQ メソッド) に簡単に変換できます。
条件:IEnumerable を使用する foreach ループがあり、そのループで LINQ クエリとして読み取る。
理由:foreach ループよりも LINQ 構文を使用したい。 LINQ により、クエリは C# での高度な言語構成要素になります。 LINQ では、ファイルのコードの量が減り、コードが読みやすくなります。また、さまざまなデータ ソースで同様のクエリ式パターンを指定できます。
Note
一般的に、LINQ 構文は foreach ループに比べて効率的ではありません。 LINQ を使用してコードの読みやすさを改善するときは、発生する可能性があるパフォーマンスのトレードオフを認識しておくことをお勧めします。
foreach ループを LINQ リファクタリングに変換する
foreach
キーワードにカーソルを置きます。Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
[Convert to LINQ]\(LINQ に変換\) または [Convert to LINQ (call form)]\(LINQ に変換 (呼び出し形式)\) を選択する
サンプル コード
using System.Collections.Generic;
public class Class1
{
public void MyMethod()
{
var greetings = new List<string>()
{ "hi", "yo", "hello", "howdy" };
IEnumerable<string> enumerable()
{
foreach (var greet in greetings)
{
if (greet.Length < 3)
{
yield return greet;
}
}
yield break;
}
}
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示