An example. 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).
Part 1 We create a Predicate by assigning to a lambda expression. The predicate has not yet been called.
Part 2 We create a second Predicate, isGreaterEqualFive, and it has an int argument called "x."
Part 3 The program demonstrates how the Invoke method always returns true or false when it is called.
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
List. Predicate 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.
Step 1 We create a string array of 3 elements. Each string in the array has at least 4 characters.
Step 2 We pass a lambda expression to TrueForAll, which receives a Predicate instance. The return value is a bool.
Result The 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 TrueForAll
The 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.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on May 10, 2023 (rewrite).