Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Predicate<T> (Delegado)

Representa el método que define un conjunto de criterios y determina si el objeto especificado cumple esos criterios.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
public delegate bool Predicate<in T>(
	T obj
)

Parámetros de tipo

in T

Tipo del objeto que se va a comparar.

Este parámetro de tipo es contravariante. Es decir, puede usar el tipo especificado o cualquier tipo menos derivado. Para obtener más información sobre la covarianza y la contravarianza, vea Covarianza y contravarianza en genéricos.

Parámetros

obj
Tipo: T
Objeto que se va a comparar según los criterios definidos en el método representado por este delegado.

Valor devuelto

Tipo: System.Boolean
Es true si obj cumple los criterios definidos en el método representado por este delegado; de lo contrario, es false.

Varios métodos de las clases Array y List<T> utilizan este delegado para buscar elementos en la colección.

En el ejemplo de código siguiente se utiliza un delegado Predicate<T> con el método Array.Find<T> para buscar en una matriz de estructuras Point. El método que representa el delegado, ProductGT10, devuelve true si el producto de los campos X e Y es mayor que 100.000. El método Find<T> llama al delegado de cada elemento de la matriz, deteniéndose en el primer punto que cumple la condición de prueba.

NotaNota

Los usuarios de Visual Basic y C# no necesitan crear el delegado explícitamente, ni especificar el argumento de tipo del método genérico. Los compiladores determinan los tipos necesarios a partir de los argumentos de método que se suministren.


using System;
using System.Drawing;

public class Example
{
    public static void Main()
    {
        // Create an array of five Point structures.
        Point[] points = { new Point(100, 200), 
            new Point(150, 250), new Point(250, 375), 
            new Point(275, 395), new Point(295, 450) };

        // To find the first Point structure for which X times Y 
        // is greater than 100000, pass the array and a delegate
        // that represents the ProductGT10 method to the static 
        // Find method of the Array class. 
        Point first = Array.Find(points, ProductGT10);

        // Note that you do not need to create the delegate 
        // explicitly, or to specify the type parameter of the 
        // generic method, because the C# compiler has enough
        // context to determine that information for you.

        // Display the first structure found.
        Console.WriteLine("Found: X = {0}, Y = {1}", first.X, first.Y);
    }

    // This method implements the test condition for the Find
    // method.
    private static bool ProductGT10(Point p)
    {
        if (p.X * p.Y > 100000)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Found: X = 275, Y = 395
 */


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.