Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

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

Pesquisa um elemento que coincida com as condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos de Array que estende do índice especificado para o último elemento.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)
public static int FindIndex<T>(
	T[] array,
	int startIndex,
	Predicate<T> match
)

Parâmetros de tipo

T

O tipo de elementos da matriz.

Parâmetros

array
Tipo: T[]
Unidimensional, baseado em zero Array a pesquisa.
startIndex
Tipo: System.Int32
O índice baseado em zero inicial da pesquisa.
match
Tipo: System.Predicate<T>
O Predicate<T> que define as condições do elemento para pesquisar.

Valor de retorno

Tipo: System.Int32
O índice baseado em zero da primeira ocorrência de um elemento que coincida com as condições definidas pelo match, se encontrado; Caso contrário, – 1.
ExceçãoCondição
ArgumentNullException

array é null.

-ou-

match é null.

ArgumentOutOfRangeException

startIndexestá fora do intervalo dos índices válidos para array.

O Array é pesquisado Avançar começando em startIndex e terminando no último elemento.

O Predicate<T> é um delegate para um método que retorna true se o objeto passado para ele coincide com as condições definidas no delegado. Os elementos de array individualmente são passados para o Predicate<T>.

Este método é um O (n) operação, onde n é o número de elementos do startIndex para o final da array.

O exemplo de código a seguir demonstra todas as três sobrecargas do FindIndex método genérico. É criada uma matriz de seqüências contendo nomes dinosaur 8, dois dos quais (em posições 1 e 5) terminam com "saurus". O exemplo de código também define um método de predicado de pesquisa denominado EndsWithSaurus, que aceita um parâmetro de seqüência de caracteres e retorna um Boolean valor que indica se a seqüência de entrada termina em "saurus".

O FindIndex<T>(T[], Predicate<T>) sobrecarga de método percorre a matriz desde o início, passando cada elemento para o EndsWithSaurus método. A pesquisa pára quando o EndsWithSaurus método retorna true para o elemento na posição 1.

ObservaçãoObservação

No C# e Visual Basic, não é necessário criar o Predicate<string> delegar (Predicate(Of String) em Visual Basic) explicitamente. Essas linguagens inferir o delegate correto do contexto e criá-lo automaticamente.

O FindIndex<T>(T[], Int32, Predicate<T>) sobrecarga de método é usada para pesquisar a matriz começando na posição 2 e continua até o fim da matriz. Ele localiza o elemento na posição 5. Finalmente, o FindIndex<T>(T[], Int32, Int32, Predicate<T>) sobrecarga de método é usada para pesquisar o intervalo de três elementos começando na posição 2. Ele retorna – 1 porque não há nenhum nomes dinosaur 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
 */


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.