Sep 23 2007

O poder dos delegates sobre as listas do .NET

Autor: Marcos Dell Antonio - Categorias: .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+

Adicione ao del.icio.us del.icio.us | Adicione ao Rec6 Rec6

Faça um comentário