コードインスペクション: ループは LINQ 式に変換できます
ReSharper が for ループで IEnumerable を繰り返し処理していると判断した場合、このループを LINQ 式に変換する提案をすることがあります。 例: 次のコード:
int c = 1;
for (int i = 0; i < numbers.Length; ++i)
c *= numbers[i];
自動的に
int c = numbers.Aggregate(1, (current, t) => current*t);
ReSharper は通常、ループ内で定義された処理を表現できる LINQ 演算子を特定するのに十分賢明です。 例えば、上記のループ内に c += numbers[i] がある場合、ReSharper は式を numbers.Sum() に簡略化します。
しかし、このアプローチの利点は何ですか? 1 つは、反復変数に関連する記録管理を行う必要がないことです(例外は、反復変数が本当に必要な場合です)。 例えば、本当に繰り返し変数が必要な場合を除いて、繰り返し変数に関連する記録管理を行う必要がありません。 さらに、すべての LINQ 固有の利点があります。例えば、コレクション名の直後に .AsParallel() メソッド呼び出しを追加するだけで、並列化の利用をリクエストできます。 これにより、PLINQ(Parallel LINQ)を使用するようランタイムに指示し、計算を高速化できます。
2026 年 6 月 12 日