Fazendo um List.Find no .Net

oraculum

Tagged: ,


Agumas coisinhas legais para fazermos com o list<> do .net.

Veja como é fácil fazermos uma busca em uma List<>, veja abaixo uma classe chamada Person

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Person
{
    public string LastName;
    public string FirstName;
 
    public static Predicate<Person> FindPredicate(Person person1)
    {
        return delegate(Person person2)
        {
            return person1.LastName == person2.LastName
                && person1.FirstName == person2.FirstName;
        };
    }
 
    public static Predicate<Person> FindByLastNamePredicate(string lastName)
    {
        return delegate(Person person)
        {
            return person.LastName == lastName;
        };
    }
}

Acrescentar uma pessoa se ela não estiver na lista:

1
2
3
4
if (myPeeps.Find(Person.FindPredicate(peepToFind)) == null)
{
    myPeeps.Add(peepToFind);
}

Buscar uma pessoa com o nome de Gump:

1
Person foundPeep = myPeeps.Find(Person.FindByLastNamePredicate("Gump"));

Retornando uma lista de resultados:

1
List<Person> aList = myPeeps.FindAll(FindPredicate(Pessoa));
Share Button

Leave a Reply