[解決済み] IEnumerableにForEach拡張メソッドがないのはなぜですか?
2022-02-05 22:42:04
質問
他の質問からヒントを得て
Zip
関数を使用します。
がないのはなぜですか?
ForEach
の拡張メソッドです。
IEnumerable
インターフェイスは?それともどこか?を取得する唯一のクラスは
ForEach
メソッドは
List<>
. 欠けている理由はあるのでしょうか、パフォーマンスでしょうか。
解決方法は?
すでに
foreach
文は、ほとんどの場合、その仕事をする言語に含まれています。
以下は見たくないですね。
list.ForEach( item =>
{
item.DoSomething();
} );
の代わりに
foreach(Item item in list)
{
item.DoSomething();
}
後者はより明確で読みやすい ほとんどの場合 しかし、タイプするのに少し時間がかかるかもしれません。
しかし、私はこの問題に対するスタンスを変えたことを認めざるを得ません。
ForEach()
の拡張メソッドは、確かに便利な場面もありますね。
以下、ステートメントとメソッドの大きな違いについて説明します。
-
型チェック:foreachは実行時に行われる。
ForEach()
はコンパイル時 (大きなプラス!) - デリゲートを呼び出す構文は、確かにずっとシンプルです:objects.ForEach(DoSomething);
- ForEach()は連鎖させることができる:ただし、そのような機能の悪さと有用性は議論の余地がある。
これらはすべて、ここで多くの人が指摘している素晴らしい点であり、なぜ人々がこの機能を見逃しているのかがわかります。私は、Microsoftが次のフレームワークのイテレーションで標準的なForEachメソッドを追加することに抵抗はないでしょう。
関連
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?
-
[解決済み] Distinct() with lambda?
-
[解決済み] 空のIEnumerableを返すにはどうしたらいいですか?
-
[解決済み】C#には拡張プロパティがある?
-
[解決済み】IEnumerable vs List - What to Use? どのように動作するのでしょうか?
-
[解決済み] IEnumerableがヌルまたは空であるかどうかを確認するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015