1
resposta

Instrução foreach não pode operar em variáveis do tipo "Lista<int>"

Estava tentando imprimir minha lista de idade usando foreach usando for normal da certo, mas usando da seguinte maneira, o compilador retorna o seguinte erro. Compiler Error CS1579 Instrução foreach não pode operar em variáveis do tipo "Lista" porque "Lista" não contém uma definição pública para "GetEnumerator"

Lista<int> idades = new Lista<int>();
            idades.Adicionar(1);
            idades.Adicionar(5);
            idades.Adicionar(14);
            idades.Adicionar(20);      
          foreach (int idade in idades)
            {
                Console.WriteLine(idades[idade]);
            }
1 resposta

Olá Rodrigo, tudo bem?

Imagino que você tenha construído a classe Lista e o método Adicionar, mas tomei a liberdade de modificar o seu código e utilizar as Classes C#.

O foreach existe e é uma maravilha no C#, principalmente em se tratando de Listas. Ele funciona da seguinte forma:

para cada (elemento em Lista)... Ou seja, foreach(int idade in idades) faça alguma coisa.

Assim, a sua variável idade, declarada dentro do escopo do foreach vai receber, em cada interação, o valor contido da posição informada na lista.

Portanto, ao invés de utilizar o print na posição [x], você pode utilizar (e deve), utilizar a varável que contém o elemento no índice, que no caso do laço foreach, seria o idade.

Segue o código, mas lembre-se, tente entender o problema e não apenas copiar uma resolução.

List<int> idades = new List<int>();
            idades.Add(1);
            idades.Add(5);
            idades.Add(14);
            idades.Add(20);
            foreach (int elemento in idades)
            {
                Console.WriteLine(elemento);
            }

Espero ter ajudado.

new Saudacoes();

; )