Exportar (0) Imprimir
Expandir todo
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

Array.FindIndex<T> (Método) (T[], Predicate<T>)

Busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición en toda la matriz Array.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public static int FindIndex<T>(
	T[] array,
	Predicate<T> match
)

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Parámetros

array
Tipo: T[]
Matriz Array unidimensional de base cero en la que se va a buscar.
match
Tipo: System.Predicate<T>
Delegado Predicate<T> que define las condiciones del elemento que se va a buscar.

Valor devuelto

Tipo: System.Int32
Índice de base cero de la primera aparición de un elemento que coincide con las condiciones definidas por match, si se encuentra; en caso contrario, -1.

ExcepciónCondición
ArgumentNullException

array es null.

O bien

match es null.

La búsqueda en Array se realiza hacia delante, empezando por el primer elemento y terminando en el último.

Predicate<T> es un delegado de un método que devuelve true si el objeto que se le pasa coincide con las condiciones definidas en el delegado. Los elementos de array se pasan individualmente al delegado Predicate<T>.

Este método es una operación O(n), donde n es la propiedad Length de array.

En el ejemplo de código siguiente se muestran las tres sobrecargas del método genérico FindIndex. Se crea una matriz de cadenas, que contiene 8 nombres de dinosaurios, dos de los cuales (en las posiciones 1 y 5) terminan en "saurus". En el ejemplo de código también se define un método de predicado de búsqueda denominado EndsWithSaurus, que acepta un parámetro de cadena y devuelve un valor Boolean que indica si la cadena de entrada termina en "saurus".

La sobrecarga del método FindIndex<T>(T[], Predicate<T>) recorre la matriz desde el principio, pasando en orden cada elemento al método EndsWithSaurus. La búsqueda se detiene cuando el método EndsWithSaurus devuelve true para el elemento situado en la posición 1.

NotaNota

En C# y Visual Basic, no es necesario crear explícitamente el delegado Predicate<string> (Predicate(Of String) en Visual Basic). Estos lenguajes deducen el delegado correcto a partir del contexto y lo crean automáticamente.

La sobrecarga del método FindIndex<T>(T[], Int32, Predicate<T>) se usa para buscar en la matriz comenzando por la posición 2 y siguiendo hasta el final de la matriz. Encuentra el elemento en la posición 5. Finalmente, la sobrecarga del método FindIndex<T>(T[], Int32, Int32, Predicate<T>) se usa para buscar en el intervalo de tres elementos comenzando en la posición 2. Devuelve –1 porque no hay ningún nombre de dinosaurio en dicho intervalo que termine en "saurus".


using System;

public class Example
{
    public static void Main()
    {
        string[] dinosaurs = { "Compsognathus", 
            "Amargasaurus",   "Oviraptor",      "Velociraptor", 
            "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
            "Triceratops" };

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, EndsWithSaurus): {0}", 
            Array.FindIndex(dinosaurs, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus));
    }

    // Search predicate returns true if a string ends in "saurus".
    private static bool EndsWithSaurus(String s)
    {
        if ((s.Length > 5) && 
            (s.Substring(s.Length - 6).ToLower() == "saurus"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops

Array.FindIndex(dinosaurs, EndsWithSaurus): 1

Array.FindIndex(dinosaurs, 2, EndsWithSaurus): 5

Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): -1
 */


.NET Framework

Compatible con: 4.5.2, 4.5.1, 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

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft