2013-09-25 6 views
7

こんにちは私はLinqのAllとForEachの違いを理解しようとしています。Linqすべて対Foreach

私は、すべてが条件をチェックするために使用されていることを知っており、述語が満たされればboolを返します。しかし、私は述語の中に割り当てがあると、それは単にうまく動作し、不平を言うことはありません。

この場合、ForEachの使用はどのようなものですか?それとものForEach

の使用するものの場合それは少し愚かなことが、重要

+4

ForEachはLINQの一部ではありません。 LINQは機能的なので、 'ForEach'のようなものはありません。 –

答えて

13

LINQにはForEach(わざと)が、実際にはありませんが知っておく必要があるかもしれません。 メソッドがあり、リスト内の各オブジェクトに対してアクションが実行されます。

主な違いはAllです。これはフィルタです。すべての項目が述語に一致するとtrueを返します。副作用を作成するにはが存在します。リスト内の各項目に対して操作を実行します。

一般に、副作用を引き起こす(つまり、クエリで操作を行わない)LINQのクエリを避け、代わりに後でforeachループに入れます。これにより、メンテナンス性を向上させることができます。

実際には多くの値を追加しないため、は実際にはWinRTフレームワークから削除されています。エリック・リッペルトは、の代わりにforeachを使用してgreat article on the subjectを書きました。

+0

私はLINQにforeachがある可能性についても疑問に思っていました。その記事への素敵なリンク – Alan