Array.FindIndex Método

Definición

Busca un elemento que coincida con las condiciones definidas por un predicado especificado y devuelve el índice de base cero de la primera aparición dentro Array de o una parte de él.

Sobrecargas

Nombre Description
FindIndex<T>(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 dentro de todo Array.

FindIndex<T>(T[], 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 dentro del intervalo de elementos del Array que se extiende desde el índice especificado hasta el último elemento.

FindIndex<T>(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 dentro del intervalo de elementos del Array que comienza en el índice especificado y contiene el número especificado de elementos.

Ejemplos

En el ejemplo de código siguiente se muestran las tres sobrecargas del FindIndex método genérico. Se crea una matriz de cadenas, que contiene 8 nombres de dinosaurio, dos de los cuales (en las posiciones 1 y 5) terminan con "diccionario de sinónimos". 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 devuelve un valor booleano que indica si la cadena de entrada termina en "diccionario de sinónimos".

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

Note

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

La FindIndex<T>(T[], Int32, Predicate<T>) sobrecarga del método se usa para buscar en la matriz a partir de la posición 2 y continuar hasta el final de la matriz. Encuentra el elemento en la posición 5. Por último, la sobrecarga del FindIndex<T>(T[], Int32, Int32, Predicate<T>) método se usa para buscar en el intervalo de tres elementos a partir de la posición 2. Devuelve -1 porque no hay nombres de dinosaurios en ese rango que terminan con "diccionario de sinónimos".

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
 */
open System

// Search predicate returns true if a string ends in "saurus".
let endsWithSaurus (s: string) =
    s.Length > 5 && s.Substring(s.Length - 6).ToLower() = "saurus"

let dinosaurs =
    [| "Compsognathus"; "Amargasaurus"
       "Oviraptor"; "Velociraptor"
       "Deinonychus"; "Dilophosaurus"
       "Gallimimus"; "Triceratops" |]

printfn ""
for dino in dinosaurs do
    printfn $"{dino}"

Array.FindIndex(dinosaurs, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, 3, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): %i"


// 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
Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs() As String = { "Compsognathus", _
            "Amargasaurus",   "Oviraptor",      "Velociraptor", _
            "Deinonychus",    "Dilophosaurus",  "Gallimimus", _
            "Triceratops" }

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus))

    End Sub

    ' Search predicate returns true if a string ends in "saurus".
    Private Shared Function EndsWithSaurus(ByVal s As String) _
        As Boolean

        ' AndAlso prevents evaluation of the second Boolean
        ' expression if the string is so short that an error
        ' would occur.
        If (s.Length > 5) AndAlso _
            (s.Substring(s.Length - 6).ToLower() = "saurus") Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

' This code example produces the following output:
'
'Compsognathus
'Amargasaurus
'Oviraptor
'Velociraptor
'Deinonychus
'Dilophosaurus
'Gallimimus
'Triceratops
'
'Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): 1
'
'Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): 5
'
'Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): -1

FindIndex<T>(T[], Predicate<T>)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dentro de todo Array.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, Predicate<T> match);
static member FindIndex : 'T[] * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), match As Predicate(Of T)) As Integer

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Parámetros

array
T[]

La base unidimensional basada en Array cero que se va a buscar.

match
Predicate<T>

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

Devoluciones

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

Excepciones

array es null.

O bien

match es null.

Comentarios

Array Se busca hacia delante comenzando en el primer elemento y finalizando en el último elemento.

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

Este método es una operación O(n), donde n es de Lengtharray.

Consulte también

Se aplica a

FindIndex<T>(T[], Int32, Predicate<T>)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dentro del intervalo de elementos del Array que se extiende desde el índice especificado hasta el último elemento.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, Predicate<T> match);
static member FindIndex : 'T[] * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, match As Predicate(Of T)) As Integer

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Parámetros

array
T[]

La base unidimensional basada en Array cero que se va a buscar.

startIndex
Int32

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

match
Predicate<T>

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

Devoluciones

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

Excepciones

array es null.

O bien

match es null.

startIndex es menor que cero o mayor que la longitud de array.

Comentarios

Array Se busca hacia delante a partir startIndex de y finalizando en el último elemento.

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

Este método es una operación O(n), donde n es el número de elementos de startIndex hasta el final de array.

Consulte también

Se aplica a

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs
Source:
Array.cs

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 dentro del intervalo de elementos del Array que comienza en el índice especificado y contiene el número especificado de elementos.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, int count, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, int count, Predicate<T> match);
static member FindIndex : 'T[] * int * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, count As Integer, match As Predicate(Of T)) As Integer

Parámetros de tipo

T

Tipo de los elementos de la matriz.

Parámetros

array
T[]

La base unidimensional basada en Array cero que se va a buscar.

startIndex
Int32

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

count
Int32

Número de elementos de la sección que se va a buscar.

match
Predicate<T>

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

Devoluciones

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

Excepciones

array es null.

O bien

match es null.

startIndex es menor que cero o mayor que la longitud de array.

O bien

count es menor que cero.

O bien

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

Comentarios

Array Se busca a partir startIndex de y termina en startIndex más menos count 1, si count es mayor que 0.

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

Este método es una operación O(n), donde n es count.

Consulte también

Se aplica a