PredicateA Predicate returns true or false. This C# type stores a method that receives 1 parameter and returns 1 value of true or false.
This type is often used with lambda expression syntax. We can create a predicate by specifying a lambda expression and passing it to a method.
This program that uses 2 Predicate instances with the parameterized type of integer. The return value of Predicate types is always bool (true or false).
Predicate by assigning to a lambda expression. The predicate has not yet been called.Predicate, isGreaterEqualFive, and it has an int argument called "x."using System; // Part 1: this Predicate instance returns true if the argument is one. Predicate<int> isOne = x => x == 1; // Part 2: this Predicate returns true if the argument is greater than 4. Predicate<int> isGreaterEqualFive = (int x) => x >= 5; // Part 3: test the Predicate instances with various parameters. Console.WriteLine(isOne.Invoke(1)); Console.WriteLine(isOne.Invoke(2)); Console.WriteLine(isGreaterEqualFive.Invoke(3)); Console.WriteLine(isGreaterEqualFive.Invoke(10));True False False True
ListPredicate is often used with the List generic type. You can specify a lambda expression as the argument to certain List methods. The C# compiler then uses type inference.
string array of 3 elements. Each string in the array has at least 4 characters.TrueForAll, which receives a Predicate instance. The return value is a bool.Predicate returns true if the string has 3 or more chars. This is true for all items in the array, so TrueForAll returns true.using System;
using System.Collections.Generic;
// Step 1: create list.
var items = new List<string> { "compiler", "interpreter", "file" };
// Step 2: use TrueForAll with a predicate.
if (items.TrueForAll(item => item.Length >= 3))
{
Console.WriteLine("PREDICATE TrueForAll");
}PREDICATE TrueForAllThe right-hand side of a lambda acquires an implicit return value if this is indicated by the context. A Predicate must always have a Boolean return value.
The term "predicate" has wide applicability in computer science. In C#, predicates are specified with lambda expressions where the result value is of type bool.