ExpertiDict

C# · Essencial · Inglês · Técnico

foreach

/ˈfɔrˌitʃ/palavra-chave

Laço que percorre qualquer tipo com um método GetEnumerator, como arrays, listas e sequências LINQ, entregando cada elemento sem uso de índice.

Onde usar

Aparece em quase todo código que lê coleções. Alterar a coleção durante o foreach lança InvalidOperationException, então para remover itens use um laço for de trás para frente ou RemoveAll.

Em código

List<string> nomes = ["Ana", "Bia"];
foreach (var n in nomes)
  Console.WriteLine(n);
// nomes.Remove(n) aqui lançaria exceção

Exemplos

Don't modify the list inside the foreach.

Não modifique a lista dentro do foreach.

A foreach works with anything that has GetEnumerator.

O foreach funciona com qualquer coisa que tenha GetEnumerator.

Cuidado

Não tente atribuir à variável de iteração: ela é somente leitura. Para trocar elementos, use índice.

Veja também

Todos os termos de C#