C# · Essencial · Inglês · Técnico
foreach
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çãoExemplos
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.