Linux / PHP / Java / Designer

As melhores dicas estão aqui.

Exceção falta de memória – lista C #

| 0 comentários

Quando precisamos lidar com uma quantidade grande de objetos e colocá-los em alguma lista podemos ter alguns problemas, alem do consumo de memoria também podemos esbarrar com com a exceção de falta de memoria ( Out of Memory ).

Vejamos o exemplo abaixo:


namespace ConsoleApplication1
{
  class Program
  {
      static void Main(string[] args)
       {
         //Cria uma lista de de 10000000000
         var l1 = Enumerable.Range(0, 1000000000).ToList();
        // exibe cada item no console
         l1.ForEach(f => Console.WriteLine(f));
        }
    }
}

Para resolvermos o problema de ter que inserir 10000000000 objetos
na memoria
podemos usar de outra abordagem.

Crie um método que retorna o tipo IEnumerable
e retorne o tipo passando a palavra reservado yield

  IEnumerable ObtemProximoInt()
    {
        for(int i=999900000; i< 1000000000; i++)
        {
            yield return i;
        }
    }

Com isso ao invés de retornar todos os objetos e armazenar
na memoria
o método retornara um item por vez


foreach(var integer in ObtemProximoInt())
{ 
    Console.WriteLine(integer);
}

Deixe uma resposta

Campos requeridos estão marcados *.