Array.FindIndex Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Pesquisa um elemento que corresponde às condições definidas por um predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro de uma Array ou parte dele.
Sobrecargas
| Nome | Description |
|---|---|
| FindIndex<T>(T[], Predicate<T>) |
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência em todo Arrayo . |
| FindIndex<T>(T[], Int32, Predicate<T>) |
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no Array que se estende do índice especificado até o último elemento. |
| FindIndex<T>(T[], Int32, Int32, Predicate<T>) |
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no Array que começa no índice especificado e contém o número especificado de elementos. |
Exemplos
O exemplo de código a seguir demonstra todas as três sobrecargas do FindIndex método genérico. Uma matriz de cadeias de caracteres é criada, contendo oito nomes de dinossauro, dois dos quais (nas posições 1 e 5) terminam com "saurus". O exemplo de código também define um método de predicado de pesquisa chamado EndsWithSaurus, que aceita um parâmetro de cadeia de caracteres e retorna um valor booliano que indica se a cadeia de caracteres de entrada termina em "saurus".
A FindIndex<T>(T[], Predicate<T>) sobrecarga do método atravessa a matriz desde o início, passando cada elemento por sua vez para o EndsWithSaurus método. A pesquisa é interrompida quando o EndsWithSaurus método retorna true para o elemento na posição 1.
Note
Em C#, F#e Visual Basic, não é necessário criar o delegado Predicate<string> (Predicate(Of String) em Visual Basic) explicitamente. Essas linguagens inferem o delegado correto do contexto e o criam automaticamente.
A FindIndex<T>(T[], Int32, Predicate<T>) sobrecarga do método é usada para pesquisar a matriz começando na posição 2 e continuando até o final da matriz. Ele localiza o elemento na posição 5. Por fim, a sobrecarga do FindIndex<T>(T[], Int32, Int32, Predicate<T>) método é usada para pesquisar o intervalo de três elementos começando na posição 2. Retorna -1 porque não há nomes de dinossauros nesse intervalo que terminam com "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
*/
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>)
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência em todo Arrayo .
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
O tipo dos elementos da matriz.
Parâmetros
- array
- T[]
A pesquisa unidimensional baseada em Array zero.
- match
- Predicate<T>
O Predicate<T> que define as condições do elemento a ser pesquisado.
Retornos
O índice baseado em zero da primeira ocorrência de um elemento que corresponde às condições definidas por match, se encontrado; caso contrário, -1.
Exceções
Comentários
O Array é pesquisado para frente começando no primeiro elemento e terminando no último elemento.
O Predicate<T> é um delegado para um método que retorna true se o objeto passado para ele corresponde às condições definidas no delegado. Os elementos de array são passados individualmente para o Predicate<T>.
Esse método é uma operação O(n), onde n está o Length de array.
Confira também
- 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>
Aplica-se a
FindIndex<T>(T[], Int32, Predicate<T>)
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no Array que se estende do índice especificado até o ú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
O tipo dos elementos da matriz.
Parâmetros
- array
- T[]
A pesquisa unidimensional baseada em Array zero.
- startIndex
- Int32
O índice inicial baseado em zero da pesquisa.
- match
- Predicate<T>
O Predicate<T> que define as condições do elemento a ser pesquisado.
Retornos
O índice baseado em zero da primeira ocorrência de um elemento que corresponde às condições definidas por match, se encontrado; caso contrário, -1.
Exceções
startIndex é menor que zero ou maior que o comprimento do array.
Comentários
A Array pesquisa é iniciada startIndex e encerrada no último elemento.
O Predicate<T> é um delegado para um método que retorna true se o objeto passado para ele corresponde às condições definidas no delegado. Os elementos de array são passados individualmente para o Predicate<T>.
Esse método é uma operação O(), onde n está o número de elementos de n até o final de startIndex.array
Confira também
- 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>
Aplica-se a
FindIndex<T>(T[], Int32, Int32, Predicate<T>)
Pesquisa um elemento que corresponde às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no Array que começa no índice especificado e contém o 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
O tipo dos elementos da matriz.
Parâmetros
- array
- T[]
A pesquisa unidimensional baseada em Array zero.
- startIndex
- Int32
O índice inicial baseado em zero da pesquisa.
- count
- Int32
O número de elementos na seção a ser pesquisada.
- match
- Predicate<T>
O Predicate<T> que define as condições do elemento a ser pesquisado.
Retornos
O índice baseado em zero da primeira ocorrência de um elemento que corresponde às condições definidas por match, se encontrado; caso contrário, -1.
Exceções
startIndex é menor que zero ou maior que o comprimento do array.
-ou-
count é menor que zero.
-ou-
startIndex e não especifique count uma seção válida em array.
Comentários
O Array avanço é pesquisado começando em startIndex e terminando em startIndex mais count menos 1, se count for maior que 0.
O Predicate<T> é um delegado para um método que retorna true se o objeto passado para ele corresponde às condições definidas no delegado. Os elementos de array são passados individualmente para o Predicate<T>.
Esse método é uma operação O(n), onde n está count.
Confira também
- 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>