Existem várias formas de se iterar, ou caminhar, por uma coleção. Irei mostrar diversas maneiras de iterar em uma coleção utilizando C#. Vamos imaginar que já existe uma classe chamada produto onde temos duas propriedades: nome e valor.

Resposta:

Criando a lista e adicionando valores.

C#:

List<Produto> vetProduto = new List<Produto>();

vetProduto.Add(new Produto { nome = "produto a", valor = 1 });
vetProduto.Add(new Produto { nome = "produto b", valor = 2 });
vetProduto.Add(new Produto { nome = "produto c", valor = 3 });

C#:

//Exemplo com foreach
foreach (Produto item in vetProduto)
{
    Console.WriteLine(item.nome);
}

//Exemplo com for
for(int i=0; i<vetProduto.Count;i++)
{
    Console.WriteLine(vetProduto[i].nome);
}


//Exemplo com anonymous method
vetProduto.ForEach(delegate(Produto item)
                   {
                       Console.WriteLine(item.nome);
                   });

//Exemplo com Iterador
IEnumerator<Produto> it = vetProduto.GetEnumerator();
while(it.MoveNext())
{
    Console.WriteLine(it.Current.nome);
}

Existem coleções que utilizam o conceito de conjunto, ou seja, não existe uma ordem interna, esse é o caso do Dictionary, mostrarei um exemplo do StringDictionary que é apenas um Dictionary aonde a key é string e o value também, ou seja, especializado em string.

Criando o Dictionary

C#:

StringDictionary hash = new StringDictionary();

hash.Add("RJ","Rio de Janeiro");
hash.Add("SP","São Paulo");
hash.Add("MG","Minas Gerais");

C#:

//Exemplo com foreach
foreach (DictionaryEntry item in hash)
{
     Console.WriteLine(item.Value);
}

//Exemplo com for
string[] keys = new string[hash.Count];
hash.Keys.CopyTo(keys,0);

for (int j = 0; j < keys.Count(); j++ )
{
    Console.WriteLine(hash[keys[j]]);
}

//Exemplo com iterador
IEnumerator it2 = hash.GetEnumerator();
while (it2.MoveNext())
{
    Console.WriteLine(((DictionaryEntry) it2.Current).Value);
               
}
Tags: .net, c#

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

2 comentários

Comentário de: Bernardo Rosmaninho [Visitante] Email
Fico muito bacana os exemplos, hehehe!
Vlw msm!
23.03.09 @ 10:56
Comentário de: Bernardo Rosmaninho [Visitante] Email
O tutorial ficou muito bacana com os exemplos.
23.03.09 @ 10:58

Esse post tem 1 feedback esperando moderação...

Deixe seu comentário


Seu endereço de e-mail não será revelado nesse site.

Sua URL será exibida.
(Quebras de linha se tornam <br />)
(Nome, e-mail & website)
(Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))