Funções em C#: Como usar foreach no c#
- #C#
Os loops são utilizados para realizar repetidas vezes uma instrução por diversas vezes consecutivas.
Na linguagem c# podemos implementar a estrutura de repetição através do for, foreach ou while.
Neste artigo, vamos falar sobre a instrução "foreach".
Foreach no c#
Com o foreach, podemos executar uma instrução ou um bloco de instruções para cada elemento em uma instância de qualquer tipo que satisfaça as seguintes condições:
- Um tipo tem o método público sem parâmetros GetEnumerator. O método GetEnumerator pode ser o método de extensão de um tipo.
- O tipo de retorno do método GetEnumerator tem a propriedade pública Current e o método público sem parâmetros MoveNext, cujo tipo de retorno é bool.
Vejamos o exemplo abaixo que traz uma lista de string:
List<string> stringList = new List<string>(){"ABC", "DEF", "GHI"};
foreach (var element in stringList)
{
Console.Write($"{element} ");
}
A saída para o método será o seguinte:
ABC DEF GHI
Como podemos observar foi impresso os elementos da lista separadamente por espaço.
Temos inúmeras possibilidades com o foreach, ele pode ser utilizado em uma lista numérica para realizar funções, como por exemplo de soma, vejamos abaixo:
List<int> intList = new List<int>(){0, 1, 1, 2, 3, 5, 8, 13};
var soma = 0;
foreach (int element in intList)
{
soma+=element;
Console.Write($"{element} ");
}
Console.WriteLine($"\nA soma é: {soma} ");
A saída do código acima é:
0 1 1 2 3 5 8 13
A soma é: 33
Observe que o código acima trouxe a soma de todos os elementos presentes nela:
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33.
Além de uma simples soma, podemos concatenar strings e realizar condições de if/else dentro do foreach, tornando nosso método mais robusto.
List<int> intList = new List<int>(){0, 1, 1, 2, 3, 5, 8, 13};
var soma = 0;
foreach (int element in intList)
{
soma+=element;
if(element.Equals(13))
Console.Write($"{element} = ");
else
Console.Write($"{element} + ");
}
Console.Write($"{soma} ");
A saída do código acima é:
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 = 33
No método concatenamos sempre um "+" após o elemento, e quando for o "13", que é o último elemento, concatenamos com o símbolo de "=", então, termina a lista, sai do foreach e é impressa a soma.
No diagrama abaixo é possível ver uma forma mais geral do foreach em c#:
Conforme visto no diagrama, é importante sempre que a List sempre tenha elementos e não seja nula.
Para encerrar, podemos tornar a implementação foreach bem menor, tomemos como exemplo a segunda implementação:
List<int> intList = new List<int>(){0, 1, 1, 2, 3, 5, 8, 13};
var soma = 0;
intList.ForEach(x=>Console.Write($"{x} "));
intList.ForEach(x=>soma+=x);
Console.WriteLine($"\nA soma é: {soma} ");
A saída do código acima é:
0 1 1 2 3 5 8 13
A soma é: 33
Conclusão
Podemos utilizar o foreach em inúmeras situações, fazer várias implementações dentro dele de formas diferentes.
Dica: não deixe de ler a documentação e pesquisar sobre funções LINQ.
Fonte: https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/statements/iteration-statements#code-try-6