Array.FindLastIndex Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Busca un elemento que coincida con las condiciones definidas por un predicado especificado y devuelve el índice de base cero de la última aparición dentro Array de o una parte de él.
Sobrecargas
| Nombre | Description |
|---|---|
| FindLastIndex<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 última aparición dentro de todo Array. |
| FindLastIndex<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 última aparición dentro del intervalo de elementos del Array que se extiende desde el primer elemento al índice especificado. |
| FindLastIndex<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 última aparición dentro del intervalo de elementos del Array que contiene el número especificado de elementos y termina en el índice especificado. |
Ejemplos
En el ejemplo de código siguiente se muestran las tres sobrecargas del FindLastIndex 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 FindLastIndex<T>(T[], Predicate<T>) sobrecarga del método atraviesa la matriz hacia atrás desde el final, 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 5.
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 FindLastIndex<T>(T[], Int32, Predicate<T>) sobrecarga del método se usa para buscar en la matriz a partir de la posición 4 y continuar hacia atrás hasta el principio de la matriz. Encuentra el elemento en la posición 1. Por último, la sobrecarga del FindLastIndex<T>(T[], Int32, Int32, Predicate<T>) método se usa para buscar en el intervalo de tres elementos a partir de la posición 4 y trabajando hacia atrás (es decir, los elementos 4, 3 y 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.FindLastIndex(dinosaurs, EndsWithSaurus): {0}",
Array.FindLastIndex(dinosaurs, EndsWithSaurus));
Console.WriteLine(
"\nArray.FindLastIndex(dinosaurs, 4, EndsWithSaurus): {0}",
Array.FindLastIndex(dinosaurs, 4, EndsWithSaurus));
Console.WriteLine(
"\nArray.FindLastIndex(dinosaurs, 4, 3, EndsWithSaurus): {0}",
Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, EndsWithSaurus): 5
Array.FindLastIndex(dinosaurs, 4, EndsWithSaurus): 1
Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, endsWithSaurus)
|> printfn "\nArray.FindLastIndex(dinosaurs, EndsWithSaurus): %i"
Array.FindLastIndex(dinosaurs, 4, endsWithSaurus)
|> printfn "\nArray.FindLastIndex(dinosaurs, 4, EndsWithSaurus): %i"
Array.FindLastIndex(dinosaurs, 4, 3, endsWithSaurus)
|> printfn "\nArray.FindLastIndex(dinosaurs, 4, 3, EndsWithSaurus): %i"
// This code example produces the following output:
//
// Compsognathus
// Amargasaurus
// Oviraptor
// Velociraptor
// Deinonychus
// Dilophosaurus
// Gallimimus
// Triceratops
//
// Array.FindLastIndex(dinosaurs, EndsWithSaurus): 5
//
// Array.FindLastIndex(dinosaurs, 4, EndsWithSaurus): 1
//
// Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus): {0}", _
Array.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & _
"Array.FindLastIndex(dinosaurs, 4, AddressOf EndsWithSaurus): {0}", _
Array.FindLastIndex(dinosaurs, 4, AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & _
"Array.FindLastIndex(dinosaurs, 4, 3, AddressOf EndsWithSaurus): {0}", _
Array.FindLastIndex(dinosaurs, 4, 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.FindLastIndex(dinosaurs, AddressOf EndsWithSaurus): 5
'
'Array.FindLastIndex(dinosaurs, 4, AddressOf EndsWithSaurus): 1
'
'Array.FindLastIndex(dinosaurs, 4, 3, AddressOf EndsWithSaurus): -1
FindLastIndex<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 última aparición dentro de todo Array.
public:
generic <typename T>
static int FindLastIndex(cli::array <T> ^ array, Predicate<T> ^ match);
public static int FindLastIndex<T>(T[] array, Predicate<T> match);
static member FindLastIndex : 'T[] * Predicate<'T> -> int
Public Shared Function FindLastIndex(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 última aparición de un elemento que coincide con las condiciones definidas por match, si se encuentra; de lo contrario, -1.
Excepciones
Comentarios
Array Se busca hacia atrás comenzando en el último elemento y finalizando en el primer 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
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>
Se aplica a
FindLastIndex<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 última aparición dentro del intervalo de elementos del Array que se extiende desde el primer elemento al índice especificado.
public:
generic <typename T>
static int FindLastIndex(cli::array <T> ^ array, int startIndex, Predicate<T> ^ match);
public static int FindLastIndex<T>(T[] array, int startIndex, Predicate<T> match);
static member FindLastIndex : 'T[] * int * Predicate<'T> -> int
Public Shared Function FindLastIndex(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 hacia atrás.
- match
- Predicate<T>
Predicate<T> que define las condiciones del elemento que se van a buscar.
Devoluciones
Índice de base cero de la última aparición de un elemento que coincide con las condiciones definidas por match, si se encuentra; de lo contrario, -1.
Excepciones
startIndex está fuera del intervalo de índices válidos para array.
Comentarios
Array Se busca hacia atrás comenzando por startIndex y finalizando en el primer 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 del principio de array a startIndex.
Consulte también
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>
Se aplica a
FindLastIndex<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 última aparición dentro del intervalo de elementos del Array que contiene el número especificado de elementos y termina en el índice especificado.
public:
generic <typename T>
static int FindLastIndex(cli::array <T> ^ array, int startIndex, int count, Predicate<T> ^ match);
public static int FindLastIndex<T>(T[] array, int startIndex, int count, Predicate<T> match);
static member FindLastIndex : 'T[] * int * int * Predicate<'T> -> int
Public Shared Function FindLastIndex(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 hacia atrás.
- 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 última aparición de un elemento que coincide con las condiciones definidas por match, si se encuentra; de lo contrario, -1.
Excepciones
startIndex está 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 en array.
Comentarios
Array Se busca hacia atrás comenzando por startIndex y finalizando en startIndex 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
- Exists<T>(T[], Predicate<T>)
- Find<T>(T[], Predicate<T>)
- FindLast<T>(T[], Predicate<T>)
- FindAll<T>(T[], Predicate<T>)
- BinarySearch
- IndexOf
- LastIndexOf
- Predicate<T>