Percorrendo elementos de uma lista aplicando Clean Code

Percorrendo listas

Muitas vezes temos necessidade de percorrer todos os elementos de uma lista para fazer alguma tarefa, existem várias formas de se percorrer a lista, podemos usar o for, foreache, while.

Essas variações muitas vezes podem gerar mais ou menos códigos, podendo ou não trazer mais ou menos complexidade. Mais devemos sempre ter em foco utilizar as técnicas do Clean Code, sempre rever nosso códigos para deixa-los mais limpos e fáceis de se entender o possível.

Abaixo vamos ver como é o mais comum de ser visto no mercado quando se percorre uma lista.

Percorrendo lista usando o foreache

Digamos que temos uma lista de string e queremos percorrer a lista para dar um print no console conforme abaixo:

List<string> testes = new List<string>();

testes.Add("a");

testes.Add("b");

testes.Add("c");

Então agora vamos dar o loop para exibir no console:

 

foreach(var t in testes)
{
Console.WriteLine($"string é {t}");
}

Esse geralmente é o código padrão que muitos utilizam, agora vamos limpar o código um pouco, primeiro vamos isolar a responsabilidade de escrever na tela em um método:

 

public static void EscreveNaTela(string t)
{
Console.WriteLine($"string é {t}");
}

Pronto agora vamos modificar nosso código, vamos usar um método disponível nas listas que é o forEach, onde o mesmo recebe um parâmetro do tipo Action<T> genérico que vai ser executado a cada elemento da lista.
Esse parâmetro Action<T> é um delegate para um método que executa uma ação no objeto passado para ele.Os elementos do atual List<T> são passados individualmente para o Action<T> delegar
Como isolamos o método de escrita então agora podemos fazer o seguinte:

 

List&lt;string&gt; testes = new List&lt;string&gt;();

testes.Add("a");

testes.Add("b");

testes.Add("c");

testes.ForEach(EscreveNaTela);

Muito simples né.

Conclusão

Fazendo dessa forma ficam muito mais simples de se dar o loop na lista, e você utiliza muito mesmo código, assim tendo um código muito mais limpo.

Espero que tenha gostado da dica, até a próxima.

Referência

https://msdn.microsoft.com/pt-br/library/bwabdf9z(v=vs.110).aspx

Posted in .NET, Blog, C#, Clean Code.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *