C# foreach

Resumo : neste tutorial, você aprenderá como usar a instrução foreach para iterar sobre elementos do array.

Usando foreach com um array unidimensional

Para iterar sobre elementos de um array unidimensional , você pode usar a forinstrução. No entanto, a foreachdeclaração fornece uma maneira mais simples e limpa de fazer isso.

O seguinte usa a forinstrução para iterar sobre os elementos de uma matriz:

int[] scores = { 5, 2, 1, 3, 4 };

for (int i = 0; i < scores.Length; i++)
{
    Console.Write($"{scores[i]} ");
}Linguagem de código:  C#  ( cs )

Saída:

5 2 1 3 4Linguagem de código:  C#  ( cs )

Neste exemplo, acessamos os elementos do scoresarray usando um índice especificado pela variável i. A variável icomeça no índice do primeiro elemento (0) e termina no índice do último elemento (Comprimento – 1). Em cada iteração, a variável i é aumentada em um. Portanto, o código itera sobre todos os elementos do array.

A instrução for funciona bem, mas é bastante detalhada e sujeita a erros.

Por exemplo, se você não controlar a variável icorretamente, receberá um erro ao acessar um elemento em um índice inválido.

O exemplo a seguir usa a foreachinstrução para iterar sobre os elementos da scoresmatriz:

int[] scores = { 5, 2, 1, 3, 4 };

foreach (int score in scores)
{
    Console.Write($"{score} ");
}Linguagem de código:  C#  ( cs )

Saída:

5 2 1 3 4

Neste exemplo, a foreachinstrução processa os elementos da scoresmatriz em ordem crescente de índice, começando no índice 0e terminando com o índice Lengh - 1. Em cada iteração, a foreachinstrução atribui o elemento atual à scorevariável.

Observe que você pode usar as instruções breake continuena foreachinstrução como a forinstrução.

A foreachinstrução não permite alterar os elementos do array. Por exemplo, o seguinte causa um erro porque tenta alterar os valores dos elementos da matriz em um foreachloop:

int[] scores = { 5, 2, 1, 3, 4 };

foreach (int score in scores)
{
    score = score * 2; // error
    Console.Write($"{score} ");
}Linguagem de código:  PHP  ( php )

Para alterar o elemento da matriz dentro do loop, você precisa usar a forinstrução. Por exemplo:

int[] scores = { 5, 2, 1, 3, 4 };

for (int i = 0; i < scores.Length; i++)
{
    scores[i] *= 2;
    Console.Write($"{scores[i]} ");
}Linguagem de código:  HTML, XML  ( xml )

Saída:

10 4 2 6 8

A tabela a seguir resume as diferenças entre foreachas fordeclarações e:

para cada para
Limpo e simples Complexo, mas flexível
Iterar todos os elementos Iterar todos ou um subconjunto de elementos
Os elementos são somente leitura Os elementos são mutáveis

Usando a instrução foreach com um array multidimensional

Para uma matriz multidimensional , a foreachinstrução aumenta primeiro os índices da dimensão mais à direita e depois da próxima dimensão à esquerda, e assim por diante, para a esquerda. Por exemplo:

int[,] matrix =
{
    {1,2,3 },
    {4,5,6 }
};

foreach(var e in matrix)
{
    Console.Write($"{e} ");
}Linguagem de código:  C#  ( cs )

Saída:

1 2 3 4 5 6Linguagem de código:  C#  ( cs )

Neste exemplo, temos um array bidimensional com duas linhas e três colunas. A foreachinstrução itera os elementos das linhas 0 a 1. Para cada linha, ela itera os elementos das colunas 0 a 3.

Se quiser controlar a ordem de acesso aos elementos da matriz, você pode usar um loop aninhado com a forinstrução.

Resumo

  • Use a foreachinstrução com matrizes unidimensionais para iterar pelos elementos da matriz.
  • Para uma matriz multidimensional, use a forinstrução para controlar a ordem em que deseja acessar os elementos da matriz.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *