none
Lambda Expression, intervalo RRS feed

  • Pergunta

  • Prezada comunidade,

    Há alguma possibilidade, utilizando apenas lambda expression para interar sobre os itens de uma lista?

    Tenho a necessidade de apresentar todos os objetos entre inicio e fim com o retorno irei criar uma nova lista.

    int[] numbers = { 1,10};   
    O resultado seria 1,2,3,4,5,6,7,8,9,10

    Seria algo como um for só que em lambda.

    Agradeço a todos.

     

    Leandro Figueira

    sábado, 7 de maio de 2011 05:09

Respostas

  • Amigo, por exemplo quero obter a lista de dias para os próximos 30 dias:

    List<DateTime> datas = Enumerable.Range(1, 30).Select(c => DateTime.Now.AddDays(c)).ToList();
    


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta Leandro Figueira segunda-feira, 16 de maio de 2011 14:25
    segunda-feira, 16 de maio de 2011 13:52
    Moderador

Todas as Respostas

  • Leandro, As expressões lambdas não contem uma funcionalidade destas, mas existem outras formas de conseguir isto que você quer através da classe Enumerable, utilizando o método Range, e passando o valor inicial e a quantidade de itens a ser gerada. O Legal é que você pode intercalar o Enumberable dentro de suas consultas LINQ, e com isto eu acho que você consegue o que quer. Veja:

    var numeros = Enumerable.Range(0, 1000+1).ToList();
          
          var queryNumero = (from c in numeros
                    where Enumerable.Range(0, 10 + 1).Contains(c)
                    select c).ToList();
    


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    segunda-feira, 9 de maio de 2011 12:22
    Moderador
  • Olavo,

    Obrigado pela ajuda, você tem alguma sugestão para o uso da classe Enumerable, com o método Range só que trabalhando com datas?

    Por exemplo, queria obter datas de um intervalo, sem o uso de um laços de repetições.

    Atenciosamente,

    Leandro Figueira
    segunda-feira, 16 de maio de 2011 12:54
  • Amigo, por exemplo quero obter a lista de dias para os próximos 30 dias:

    List<DateTime> datas = Enumerable.Range(1, 30).Select(c => DateTime.Now.AddDays(c)).ToList();
    


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    • Marcado como Resposta Leandro Figueira segunda-feira, 16 de maio de 2011 14:25
    segunda-feira, 16 de maio de 2011 13:52
    Moderador