Orden ¿Descendiendo en la expresión Lambda?


250

Sé que en la gramática normal de Linq, orderby xxx descendinges muy fácil, pero ¿cómo hago esto en la expresión Lambda?

Respuestas:


428

Como dice Brannon, es OrderByDescendingy ThenByDescending:

var query = from person in people
            orderby person.Name descending, person.Age descending
            select person.Name;

es equivalente a:

var query = people.OrderByDescending(person => person.Name)
                  .ThenByDescending(person => person.Age)
                  .Select(person => person.Name);

77
"orden descendente por person.Name" debe ser " orderby person.Name descendente"
mxmissile

63

Uso System.Linq.Enumerable.OrderByDescending()?

Por ejemplo:

var items = someEnumerable.OrderByDescending();

21

Prueba esto:

List<int> list = new List<int>();
list.Add(1);
list.Add(5);
list.Add(4);
list.Add(3);
list.Add(2);

foreach (var item in list.OrderByDescending(x => x))
{
    Console.WriteLine(item);                
}

14

Prueba esto de otra manera:

var qry = Employees
          .OrderByDescending (s => s.EmpFName)
          .ThenBy (s => s.Address)
          .Select (s => s.EmpCode);

Queryable.ThenBy


3

Esto solo funciona en situaciones en las que tiene un campo numérico, pero puede poner un signo menos delante del nombre del campo de esta manera:

reportingNameGroups = reportingNameGroups.OrderBy(x=> - x.GroupNodeId);

Sin embargo esto funciona un poco diferente de lo poco OrderByDescendingcuando haya está ejecutando en una int?o double?o decimal?campos.

Lo que sucederá es que OrderByDescendinglos nulos estarán al final, en comparación con este método, los nulos estarán al principio. Lo cual es útil si desea barajar nulos sin dividir los datos en partes y empalmarlos más tarde.


1

LastOrDefault()por lo general no funciona pero con el Tolist()funcionará. No hay necesidad de usar un OrderByDescendinguso Tolist()como este.

GroupBy(p => p.Nws_ID).ToList().LastOrDefault();
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.