IEnumerable
: 欠落している ForEach
拡張メソッド他の多くの言語とは異なり、.NET Framework では驚くべきことに ForEach
の IEnumerable
拡張メソッドが省略されています。 この欠勤はしばしば疑問を引き起こし、パフォーマンス上の懸念が潜在的な理由としてよく挙げられます。
C# の組み込み foreach
ステートメントは、ほとんどの反復ニーズをすでに効果的に処理しています。 ForEach
拡張メソッドの追加は冗長です。
さらに、foreach
ステートメントの読みやすさは、一般に ForEach()
メソッド呼び出しの読みやすさを上回ります。
<code class="language-csharp">// Using ForEach() extension method list.ForEach(item => item.DoSomething()); // Using foreach statement foreach (var item in list) { item.DoSomething(); }</code>
foreach
はより多くのキーストロークを必要としますが、多くの場合、その明瞭さが優先されます。
最近の会話では、ForEach()
拡張メソッドの潜在的な利点が強調されています:
ForEach()
は、foreach
の実行時チェックとは異なり、コンパイル時の型チェックを提供します。ForEach()
を使用するとよりコンパクトになります。objects.ForEach(DoSomething)
に例を示します。ForEach()
によりメソッド チェーンが有効になります。これらの利点は、標準化された ForEach()
メソッドが将来の .NET バージョンへの価値ある追加となる可能性があることを示唆しています。
以上が.NET の `IEnumerable` に `ForEach` 拡張メソッドがないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。