FindIndex(T) Método (T[], Int32, Int32, Predicate(T))
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[], Int32, Int32, 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 el intervalo de elementos de la matriz Array que comienza en el índice especificado y contiene el número especificado de elementos.

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

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

Parámetros

array

Matriz Array unidimensional de base cero en la que se va a buscar.

startIndex

Índice inicial de base cero de la búsqueda.

count

Número de elementos de la sección en la que se va a realizar la búsqueda.

match

Delegado Predicate<T> que define las condiciones del elemento que se va a buscar.

Valor devuelto

Type: 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.

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Exception Condition
ArgumentNullException

El valor de array es null.

o bien

El valor de match es null.

ArgumentOutOfRangeException

El valor de startIndex se encuentra fuera del intervalo de índices válidos para array.

o bien

count es menor que cero.

o bien

startIndex y count no especifican una sección válida de array.

El Array se busca hacia delante, empezando en startIndex y terminando en startIndex plus count menos 1, si count es mayor que 0.

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

Este método es una E/s (n) operación, donde n es count.

En el ejemplo de código siguiente se muestra las tres sobrecargas de la FindIndex método genérico.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".El ejemplo de código también define un método de predicado de búsqueda denominado EndsWithSaurus, que acepta un parámetro de cadena y valor devuelve un valor booleano que indica si la cadena de entrada termina en "saurus".

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

System_CAPS_noteNota

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

El FindIndex<T>(T[], Int32, Predicate<T>) sobrecarga del método se utiliza para buscar en la matriz, comenzando en la posición 2 y continuando hasta el final de la matriz.Encuentra el elemento en la posición 5.Por último, el FindIndex<T>(T[], Int32, Int32, Predicate<T>) sobrecarga del método se utiliza para buscar el intervalo de tres elementos, empezando por 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
 */

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 2.0
Portable Class Library
Compatible con: portable .NET platforms
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar:
© 2016 Microsoft