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>.Find

Pesquisa um elemento que coincida com as condições definidas pelo predicado especificado e retorna a primeira ocorrência dentro a todo List<T>.

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

public T Find(
	Predicate<T> match
)

Parâmetros

match
Tipo: System.Predicate<T>
The Predicate<T> delegado que define as condições do elemento para pesquisar.

Valor de retorno

Tipo: T
O primeiro elemento que coincida com as condições definidas pelo predicado especificado, se encontrados; caso contrário, o valor padrão para o tipo de T.

ExceçãoCondição
ArgumentNullException

match é null.

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, avançando List<T>, começando com o primeiro elemento e terminando com o último elemento. Processamento é interrompido quando uma correspondência for encontrada.

Observação importanteObservação importante:

Ao procurar uma lista que contém tipos de valor, verifique se que o valor padrão para o tipo não satisfaz o predicado de Pesquisar.Caso contrário, não é possível distinguir entre um elemento da lista que tem o valor padrão para o tipo e um valor padrão indicando que nenhuma correspondência foi encontrada.Se o valor padrão satisfizer o predicado de Pesquisar, use o FindIndex método em vez disso.

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 o Find, FindLast, e FindAll métodos. 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 Find método percorre a lista desde o início, passando por sua vez para cada elemento de EndsWithSaurus método. A Pesquisar pára quando o EndsWithSaurus método retorna truepara o elemento "Amargasaurus".

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 FindLast método é usado para pesquisar com versões anteriores do participante da lista. Localiza o elemento "Dilophosaurus" na posição 5.The FindAll método é usado para retornar uma List<T>que contém todos os elementos que participante em "saurus". Os elementos são exibidos.

Finalmente, a RemoveAllmétodo é usado para remover todas as entradas terminando com "saurus" e o Exists método mostra que todas as seqüências tais desapareceram.

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("\nTrueForAll(EndsWithSaurus): {0}",
            dinosaurs.TrueForAll(EndsWithSaurus));

        Console.WriteLine("\nFind(EndsWithSaurus): {0}", 
            dinosaurs.Find(EndsWithSaurus));

        Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
            dinosaurs.FindLast(EndsWithSaurus));

        Console.WriteLine("\nFindAll(EndsWithSaurus):");
        List<string> sublist = dinosaurs.FindAll(EndsWithSaurus);

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

        Console.WriteLine(
            "\n{0} elements removed by RemoveAll(EndsWithSaurus).", 
            dinosaurs.RemoveAll(EndsWithSaurus));

        Console.WriteLine("\nList now contains:");
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nExists(EndsWithSaurus): {0}", 
            dinosaurs.Exists(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

TrueForAll(EndsWithSaurus): False

Find(EndsWithSaurus): Amargasaurus

FindLast(EndsWithSaurus): Dilophosaurus

FindAll(EndsWithSaurus):
Amargasaurus
Dilophosaurus

2 elements removed by RemoveAll(EndsWithSaurus).

List now contains:
Compsognathus
Oviraptor
Velociraptor
Deinonychus
Gallimimus
Triceratops

Exists(EndsWithSaurus): False
 */

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:
© 2014 Microsoft