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 for
instrução. No entanto, a foreach
declaração fornece uma maneira mais simples e limpa de fazer isso.
O seguinte usa a for
instruçã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 4
Linguagem de código: C# ( cs )
Neste exemplo, acessamos os elementos do scores
array usando um índice especificado pela variável i
. A variável i
começ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 i
corretamente, receberá um erro ao acessar um elemento em um índice inválido.
O exemplo a seguir usa a foreach
instrução para iterar sobre os elementos da scores
matriz:
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 foreach
instrução processa os elementos da scores
matriz em ordem crescente de índice, começando no índice 0
e terminando com o índice Lengh - 1
. Em cada iteração, a foreach
instrução atribui o elemento atual à score
variável.
Observe que você pode usar as instruções break
e continue
na foreach
instrução como a for
instrução.
A foreach
instruçã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 foreach
loop:
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 for
instruçã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 foreach
as for
declaraçõ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 foreach
instruçã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 6
Linguagem de código: C# ( cs )
Neste exemplo, temos um array bidimensional com duas linhas e três colunas. A foreach
instruçã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 for
instrução.
Resumo
- Use a
foreach
instrução com matrizes unidimensionais para iterar pelos elementos da matriz. - Para uma matriz multidimensional, use a
for
instrução para controlar a ordem em que deseja acessar os elementos da matriz.