2

私はそのPredicate<T>型について頭を悩ませようとしています.Tがboolを除いて何でもあるとき、それを理解することができます. をお持ちPredicate<bool>の場合、それをどのように使用できるかわかりません。

これがばかげたことなのか、それとも実際に目的を果たしているのか、誰か教えてもらえますか?

Predicate<T>すでにブール値を返しているため、ブール値の条件をテストするのは少し無意味に思えます...または間違っていますか?

4

2 に答える 2

9

Predicate とは、T (任意の型) を受け取り、bool を返す関数を意味します。

Predicate<int> isEven = i => i % 2 == 0;

あなたはほとんど正しいです。bool の場合、頭に浮かぶ用途はあまりありません。つまり、bool でできることは限られています。

Predicate<bool> isFalse = input => !input;
Predicate<bool> isTrue = input => input;

次のように使用できます。

var listOfBools = new List<Bool>() { true, false, false, true, true };
var trues = listOfBools.FindAll(isTrue);
var falses = listOfBools.FindAll(isFalse);

bool でできることは非常に限られているため、あまり役に立ちません。

于 2010-02-07T22:41:51.567 に答える
1

まあ、すでに bool を持っているからといって、正確にその bool を返したいというわけではありません。たとえば、引数が false の場合に true を返す IsFalse 述語を想像できます。

于 2010-02-07T22:41:38.540 に答える