Ordernar consultas LINQ por data

.NET

29/12/2014

Bom dia,

Possuo um método onde eu retorno a lista de aniversariantes do mês. Gostaria de uma ajuda para listar por data.

Segue o código para que estou utilizando para a consulta.

 public ActionResult Aniversariantes()
        {

            var usuarios = usuarioRepository.Lista.Where(u => u.DtNascimento.Month == DateTime.Now.Month).ToList();
            return View(usuarios);
        }
Randrade

Randrade

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

29/12/2014

Qual é mesmo sua dúvida? Como ordenar?
Se for, basta usar o .OrderBy(u => u.DtNascimento) após o Where.
GOSTEI 0
Randrade

Randrade

29/12/2014

É essa dúvida mesmo Joel.
Tentei colocar, mas continua listando desordenado.


Segue como ficou o código, com o OrderBy:
 public ActionResult Aniversariantes()
        {

            var usuarios = usuarioRepository.Lista.Where(u => u.DtNascimento.Month == DateTime.Now.Month).OrderBy(u => u.DtNascimento).ToList();
            return View(usuarios);
        }



Porém continua listando desordenado.
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

29/12/2014

Tenta fazer separado para ver se roda:


 var usuarios = usuarioRepository.Lista.Where(u => u.DtNascimento.Month == DateTime.Now.Month);
 var usuariosOrdenado = usuarios.OrderBy(u => u.DtNascimento).ToList();          


O campo é DateTime?
GOSTEI 0
Randrade

Randrade

29/12/2014

Testei aqui do jeito que você informou, e também não foi.
Tentei ordenar por nome, e funcionou corretamente. Então da para ver que é algo relacionado com a data mesmo, agora o que, que é o Problema.
O campo é DateTime sim.


Possui mais alguma dica?
GOSTEI 0
Randrade

Randrade

29/12/2014

Consegui aqui.

É que a cabeça fica tão cheia, que esquecemos até de pensar o básico!

Apenas ordei por data.Day, assim ele filtrou por dia.


Segue o código, caso alguém também passe por algo parecido.

 public ActionResult Aniversariantes()
        {

            var usuarios = usuarioRepository.Lista.Where(u => u.DtNascimento.Month == DateTime.Now.Month);
            var usuariosOrdenados = usuarios.OrderBy(u => u.DtNascimento.Day).ToList();
            return View(usuariosOrdenados);
        }
GOSTEI 0
Randrade

Randrade

29/12/2014

Más obrigado a todos pela ajuda!

Não tenho nem como agradecer pela ajuda de todos aqui...
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/12/2014

Opa, que bom que deu certo.
Obrigado pelo feedback.
Abraço e bons códigos.
GOSTEI 0
POSTAR