我试图绕过Predicate<T>
类型,当T为任何东西时我都能理解它,除了bool。如果你有Predicate<bool>
,我看不出如何使用它。
有人可以告诉我这是否是一件愚蠢的事情,或者它是否真的有用?
Predicate<T>
已经返回一个bool,所以然后测试bool上的条件似乎有点无意义......或者我弄错了?
答案 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。