JetBrains Rider 2024.1 ヘルプ

コード検査: ループは LINQ 式に変換できます

JetBrains Rider が 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);

JetBrains Rider は通常、ループ内で定義されている演算をどの LINQ 演算子が表現できるかを識別するのに優れています。例: 上記のループに c += numbers[i] があった場合、JetBrains Rider は numbers.Sum() への発現を減らします。

しかし、このアプローチの利点は何ですか? 1 つは、反復変数に関連する記録管理を行う必要がないことです(例外は、反復変数が本当に必要な場合です)。その上に、すべての LINQ 固有の利点(英語)があります。たとえば、コレクション名の直後に .AsParallel() メソッド呼び出しを追加するだけで、並列化の使用を要求できます。これにより、PLINQ(Parallel LINQ)を使用するようランタイムに指示し、計算を高速化できます。

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...

コンテキストアクション

コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更を素早く導入できます。JetBrains Rider は、サポートされているすべての言語で数百のコンテキストアクションを提供します。完全なリストは、JetBrains Rider 設定のページお...

コード検査: ローカル変数がメンバーを隠す

フィールドと同じ名前のローカル変数を持つと、メンバーフィールドが効果的に隠されます。次に例を示します。class Person { string name; void DoSomething() { string name = "..."; } } これは、誰かがメソッドで参照している名前が以前に定義されたフィールドであると想定する可能性があるため、混乱を招く可能性があります。コード検査: セクション内の属性の結合または分離コード検査: ループは LIN...