Exportar (0) Imprimir
Expandir Tudo
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

Método List<T>.FindLastIndex (Int32, Int32, Predicate<T>)

Pesquisa um elemento que coincida com as condições definidas pelo predicado especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos no List<T> que contém o número especificado de elementos e termina no índice especificado.

Namespace:  System.Collections.Generic
Assembly:  mscorlib (em mscorlib.dll)

public int FindLastIndex(
	int startIndex,
	int count,
	Predicate<T> match
)

Parâmetros

startIndex
Tipo: System.Int32
O índice baseado em zero inicial da Pesquisar para trás.
count
Tipo: System.Int32
O número de elementos na seção para pesquisar.
match
Tipo: System.Predicate<T>
The Predicate<T> delegado que define as condições do elemento para pesquisar.

Valor de retorno

Tipo: System.Int32
O índice baseado em zero da última ocorrência de um elemento que coincida com as condições definidas por match, se encontrados; caso contrário, – 1.

ExceçãoCondição
ArgumentNullException

match é null.

ArgumentOutOfRangeException

startIndex está fora do intervalo dos índices válido para o List<T>.

- ou -

count é menor que 0.

- ou -

startIndex e count não especificar uma seção válida do List<T>.

The List<T> é pesquisado para trás, começando em startIndex e no final startIndex menos count Além de 1, se count é maior que 0.

The Predicate<T> é um delegado para um método que retorna true Se o objeto passado a ele coincidir com as condições definidas no delegado. Os elementos do corrente List<T> individualmente são passados para o Predicate<T> delegado.

Esse método realiza uma Pesquisar linear; portanto, esse método é um O (n) operação, onde n é count.

O exemplo de código a seguir demonstra todos os três sobrecargas do FindLastIndex método. A List<T>seqüências de caracteres é criado, contendo nomes dinosaur 8, 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 Pesquisar denominado EndsWithSaurus, que aceita um parâmetro de cadeia de caracteres e retorna um valor booliano que indica se a seqüência de caracteres de entrada termina em "saurus".

The FindLastIndex(Predicate<T>) sobrecarga de método percorre a lista com versões anteriores do participante, passando por sua vez para cada elemento de EndsWithSaurus método. A Pesquisar pára quando o EndsWithSaurus método retorna true para o elemento na posição 5.

ObservaçãoObservação:

No Visual Basic e translation from VPE for Csharp, não é necessário criar o Predicate<string> delegado)Predicate(Of String) no Visual Basic) explicitamente. Esses idiomas inferir o delegado correto do contexto e criá-lo automaticamente.

The FindLastIndex(Int32, Predicate<T>) sobrecarga de método é usada para pesquisar a lista, começando na posição 4 e continuando para trás até o início da lista. Localiza o elemento na posição 1.Finalmente, a FindLastIndex(Int32, Int32, Predicate<T>) sobrecarga é usada para pesquisar o intervalo da lista de três elementos começando na posição 4 e trabalhar para trás (ou seja, os elementos 2, 3 e 4). Ele retorna – 1 porque houver nomes dinosaur nesse intervalo que terminam com "saurus".

using System;
using System.Collections.Generic;

publicclass Example
{
    publicstaticvoid Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Compsognathus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Oviraptor");
        dinosaurs.Add("Velociraptor");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Dilophosaurus");
        dinosaurs.Add("Gallimimus");
        dinosaurs.Add("Triceratops");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nFindLastIndex(EndsWithSaurus): {0}", 
            dinosaurs.FindLastIndex(EndsWithSaurus));

        Console.WriteLine("\nFindLastIndex(4, EndsWithSaurus): {0}",
            dinosaurs.FindLastIndex(4, EndsWithSaurus));

        Console.WriteLine("\nFindLastIndex(4, 3, EndsWithSaurus): {0}",
            dinosaurs.FindLastIndex(4, 3, EndsWithSaurus));
    }

    // Search predicate returns true if a string ends in "saurus".
    privatestaticbool EndsWithSaurus(String s)
    {
        if ((s.Length > 5) && 
            (s.Substring(s.Length - 6).ToLower() == "saurus"))
        {
            returntrue;
        }
        else
        {
            returnfalse;
        }
    }
}

/* This code example produces the following output:

Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops

FindLastIndex(EndsWithSaurus): 5

FindLastIndex(4, EndsWithSaurus): 1

FindLastIndex(4, 3, EndsWithSaurus): -1
 */

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0

.NET Compact Framework

Compatível com: 3.5, 2.0

XNA Framework

Compatível com: , 1.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft