2012-07-02 14 views

答えて

12

述語はブール値を返すデリゲート(関数オブジェクト)です。 Lambda expressionsは、任意の無名関数を定義するために使用できます。機能的に同等である

Predicate<int> isEven2 = x => x % 2 == 0; 

:ラムダ式の形で述語を発現させるためにラムダ式は、匿名関数である

Func<int,bool> isEven = x => x % 2 == 0; 
+3

述語は*匿名関数であることを*持っていません。 –

+0

述部を引数(List.FindAll()など)として使用するメソッドの場合、機能的に同等であるため、コンパイラがFred を有効な述語として認識すると便利です。しかし、あなたはちょうどラムダのようにそれを実行することができます: 'var x = MyList.FindAll(i => isEven(i));' – Graham

3

述語は、基準のセットを定義します。ラムダexを使うことができます。しかし、それは彼らが同じことを意味するわけではありません。

Predicate

Lambda expression

+1

さて、違いは何ですか? – Phil

関連する問題