Predicate Delegate

Predicate is the delegate like Func and Action delegates. It represents a method containing a set of criteria and checks whether the passed parameter meets those criteria. A predicate delegate methods must take one input parameter and return a Boolean - true or false.


The Predicate delegate is defined in the System namespace, as shown below:


Predicate signature:

public delegate bool Predicate<in T>(T obj);


Same as other delegate types, Predicate can also be used with any method, anonymous method, or lambda expression.


Example:

Predicate delegate

static bool IsUpperCase(string str)
{
  return str.Equals(str.ToUpper());
}

static void Main(string[] args)
{
  Predicate<string> isUpper = IsUpperCase;

  bool result = isUpper("hello world!!");

  Console.WriteLine(result);
}

Output: false


Predicate delegate with anonymous method

static void Main(string[] args)
{
  Predicate<string> isUpper = delegate(string s) { return s.Equals(s.ToUpper());};
  bool result = isUpper("hello world!!");
}

Output: false


Predicate delegate with lambda expression

static void Main(string[] args)
{
  Predicate<string> isUpper = s => s.Equals(s.ToUpper());
  bool result = isUpper("hello world!!");
}

Output: false