ここから本文です

.NET(C#)のLINQについての質問です。 List<T>にはForEachメソッドがありますが、I...

enmeizanさん

2012/12/2323:49:48

.NET(C#)のLINQについての質問です。
List<T>にはForEachメソッドがありますが、IEnumerableにForEachメソッドが無いのはなぜなんでしょう。
どっちもforeachは出来るのに何故実装されなかったのでしょうか。

Microsoftなりに何か考えがあるのかもしれませんが、自分にはわかりません。

Microsoftの公式回答、もしくは皆さんの考えをお聞かせください。
よろしくお願いします。


補足
拡張メソッドで出来るとかではなく、何故実装されないのかが知りたいのでそういう回答はお控えください。

閲覧数:
745
回答数:
2

違反報告

ベストアンサーに選ばれた回答

編集あり2012/12/2409:38:16

http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-f...
に理由(2つ)が書いてあります。

1つは言語の設計思想に基づくもの。
もう一つは、完全でわかりやすい別の書き方が存在するから(foreach構文のほうが、ForEachメソッドよりわかりやすいと言っている)。

ちなみに、このブログの主は、C#の主要開発者です。

なお、List<T>のForEachは.NET2.0で追加されたもので、LINQ(3.5でサポート)とは無関係です。

質問した人からのコメント

2012/12/30 23:09:36

ありがとうございました。
List<T>とLINQって実装時期が違ったのですね。
納得しました。

ベストアンサー以外の回答

1〜1件/1件中

lasta_scopeさん

2012/12/2407:16:27

Selectで同じことができるから、じゃないですか?
推測ですけれど。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。