私はそのPredicate<T>
型について頭を悩ませようとしています.Tがboolを除いて何でもあるとき、それを理解することができます. をお持ちPredicate<bool>
の場合、それをどのように使用できるかわかりません。
これがばかげたことなのか、それとも実際に目的を果たしているのか、誰か教えてもらえますか?
Predicate<T>
すでにブール値を返しているため、ブール値の条件をテストするのは少し無意味に思えます...または間違っていますか?
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 でできることは非常に限られているため、あまり役に立ちません。
まあ、すでに bool を持っているからといって、正確にその bool を返したいというわけではありません。たとえば、引数が false の場合に true を返す IsFalse 述語を想像できます。