English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Delegado Predicate en C#

Predicate es como Func y Action representan delegados. Representa un método que define un conjunto de condiciones y determina si un objeto específico cumple con estas condiciones. Este delegado se utiliza por varios métodos de Array y List, para buscar elementos en una colección. El método del delegado Predicate debe tomar un parámetro de entrada y devolver un valor booleano true o false.

Definición del delegado Predicate

El delegado Predicate se define en el espacio de nombres System, como se muestra a continuación:

Firma de Predicate:

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

Al igual que otros tipos de delegados, el delegado Predicate también se puede usar con cualquier método, método anónimo o expresión lambda.

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);
}
Salida:
false

Delegado Predicate y método anónimo

También se puede asignar un método anónimo a un tipo de delegado Predicate, como se muestra a continuación.

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

Delegado Predicate y expresión lambda

También se puede asignar una expresión lambda a un tipo de delegado Predicate, como se muestra a continuación.

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

Instrucciones para el delegado Predicate

  • El delegado Predicate es un delegado genérico que devuelve bool

  • El delegado Predicate<int> representa un delegado que toma un parámetro de tipo int y devuelve bool

  • El delegado Predicate tiene un solo parámetro y un valor de retorno fijo bool

Puntos a recordar

  1. El delegado predicate toma un parámetro de entrada y un tipo de retorno booleano.

  2. Se puede asignar un método anónimo y una expresión Lambda a un delegado predicate.