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 String
string
[] 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.