谓词<bool>,毫无意义或有用吗?</bool>

时间:2010-02-07 22:36:16

标签: c# boolean predicate

我试图绕过Predicate<T>类型,当T为任何东西时我都能理解它,除了bool。如果你有Predicate<bool>,我看不出如何使用它。

有人可以告诉我这是否是一件愚蠢的事情,或者它是否真的有用?

Predicate<T>已经返回一个bool,所以然后测试bool上的条件似乎有点无意义......或者我弄错了?

2 个答案:

答案 0 :(得分:9)

谓词是指采用T(任何类型)并返回bool的函数。

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

你大部分都是对的。对于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做很多事情。

答案 1 :(得分:1)

好吧,仅仅因为你有一个bool已经并不意味着你想要完全返回那个bool。例如,我可以想象IsFalse谓词,如果参数为假,则返回true。