Predicate<Bool>, бессмысленно или полезно?
Вопрос
Я пытаюсь разобраться в этом Predicate<T>
type, и я могу это понять, когда T — что угодно, кроме bool.Если у вас есть Predicate<bool>
, я не понимаю, как это можно использовать.
Может кто-нибудь сказать мне, глупо ли это делать или это действительно служит какой-то цели?
Predicate<T>
уже возвращает логическое значение, поэтому проверка условия для логического значения кажется немного бессмысленной...или я ошибся?
Решение
Предикат означает функцию, которая принимает Т (любого типа) и возвращает логическое значение.
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 можно сделать очень много вещей.
Другие советы
Ну, то, что у вас уже есть логическое значение, не означает, что вы хотите вернуть именно это логическое значение.Например, я могу представить предикат IsFalse, который возвращает true, если аргумент ложный.