Bom, vamos trabalhar com uma fonte de dados que no caso é uma coleção de string (array), queremos percorrer todos seus elementos e exibir na tela, existe duas maneiras, utilizar a estrutura de repetição convencional (for) ou o (foreach). Fonte de dados a ser usada como exemplo:
//Array de Stringstring[] arrayDeNomes =
new
string[]{ "Roberto", "Ingrid", "Aline", "Janice"};Resultado:
Vejamos abaixo a diferença de sintaxe entre as duas estrutura de repetição (for) e (foreach). No (for) convencional necessitamos de um índice, onde através dele informaremos a nossa fonte de dados qual é o índice do elemento que estamos procurando, tendo como seguinte resultado:
for
(int
i = 0; i < arrayDeNomes.Length; i++){ Console.Write("Nome: {0}",
arrayDeNomes[i]); Console.Write("\n");}No (foreach) não existe um limite do looping, pois isto já está implícito na própria coleção, não é necessário utilizarmos um índice ou seja, você só precisa se preocupar em manipular a sua fonte de dados atual, para ser mais exato o objeto que ele esta
retornando, vejamos abaixo um exemplo:
foreach
(var nomePessoa in
arrayDeNomes){ Console.Write("Nome: {0}",
nomePessoa); Console.Write("\n");}Se a classe tem o GetEnumerator, MoveNext, Reset, e Current membros, ele funcionará com foreach. A ideia deste mini artigo não é mostrar que um é melhor que o outro, mais sim tentar entender pelo menos o minimo de como se funciona um foreach.
