O poder dos delegates sobre as listas do .NET

Publicado por Marcos Dell Antonio em 23/09/2007 | .NET

A coleção List<T> do .NET Framework possui uma série de métodos que recebem como parâmetro delegates genéricos. Um destes é o Sort, que espera um parâmetro do tipo Comparison<T>. Outro é o RemoveAll, que recebe um Predicate<T>. Mais um deles é o ForEach, que trabalha com um Action<T>.

Tá, mas pra que serve isso tudo?

Partindo do princípio de que no dia-a-dia de grande parte dos desenvolvedores é comum executar ordenação, remoção ou iteração sobre listas, estes métodos servem para dar mais agilidade ao desenvolvimento.

Mas de que forma?

Tomarei como base para os exemplos a seguinte lista:

Lista de nomes

Uma operação de ordenação, por exemplo, requer uma iteração sobre a lista, comparação dos elementos e remanejamento de suas posições. Com o método Sort tudo isso é resolvido com uma linha de código:

Sort

Resultado do método Sort

E para remover todos os elementos que iniciem com a letra R? Mais uma vez seria preciso uma iteração sobre a lista e uma comparação para cada elemento. A solução com o método RemoveAll é muito mais prática:

RemoveAll

Resultado do método RemoveAll

Se isto ainda não convenceu, faço a seguinte pergunta: como você acha que estou mostrando os elementos da lista após a execução dos métodos? Usando for ou foreach? Não! Veja:

ForEach

Saiba mais sobre isto estudando delegates.

T+

1 comentário

  1. 1
    Ricardo Diniz Dryswiacki // December 18th, 2008 at 10:17 am

    Marcos,

    Foi simples e fácil entender escrito desta maneira.
    Tudo é a maneira de falar (no caso escrever) ou melhor:
    explicar.

    Parabéns
    Ricardo Diniz

Deixe o seu comentário

Anúncios

Anúncio provido pelo BuscaPé