「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > なぜC#はienumerableのためのforeach拡張法を持っていないのですか?

なぜC#はienumerableのためのforeach拡張法を持っていないのですか?

2025-02-06に投稿しました
ブラウズ:619

Why Doesn't C# Have a ForEach Extension Method for IEnumerable?

行方不明のienumerable foreach拡張の奇妙なケース

c#の zip 関数の欠如に関する最近の議論は、関連する質問を引き起こしました:なぜC#は、広く使用されている foreach extensionメソッドを提供しないのですか? ]インターフェイス? 興味深いことに、リストのみ がこの機能を含めます。

謎の解明

この省略はパフォーマンスの最適化ですか?それとも、より深い、根本的な理由はありますか? いくつかの理論は、この顕著なギャップを説明しようとします。

内蔵

foreach アドバンテージ 1つの視点は、C#の組み込み

foreach

ステートメントがほとんどの反復ニーズに適切に対応することを示唆しています。 その簡潔で読みやすい構文がしばしば好まれます:

foreach(リストのアイテム項目) { item.dosomething(); }
foreach (Item item in list)
{
    item.DoSomething();
}

list.foreach(item => item.dosomething());
list.ForEach(item => item.DoSomething());
foreach

extension の引数 ただし、特定の状況で foreach()

拡張法の実際的な利点を主張する人もいます。 これらの利点は次のとおりです。

改善されたタイプの安全性:
    拡張法は、
  • foreach ステートメントのランタイムチェックとは異なり、コンパイル時間タイプチェックを提供します。 合理化された構文:「objects.foreach(dosomething);」で示されているように、代表者の呼び出しを単純化します。
  • メソッドチェーンの可能性:潜在的に過度に使用する傾向がありますが、
  • foreach()
  • 呼び出しは説得力のある利点です。 視点のシフト
最初は疑わしいが、特定のシナリオで

foreach()foreach()foreach()の値を認識している人もいます。 この再評価は、Microsoftが将来のフレームワークリリースに標準化された foreach メソッドを追加することを検討するかもしれないことを示唆しています。

ienumerable のこの拡張法がないことは、依然として議論のトピックです。 潜在的な利点を考えると、開発者コミュニティは、このギャップがC#拡張ライブラリで対処されていることを望んで、さらなる開発を予測しています。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3