Article image

IB

Isadora Bastos22/02/2024 19:00
Compartilhe

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#:

image

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

Compartilhe
Comentários (0)