2009-10-28 17 views

Respuesta

390

como dice Brannon, es OrderByDescending y 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); 
+6

"ordenar por persona.Nombre descendente" debe ser "* orderby * person.Name descendente" – mxmissile

+0

@mxmissile: Gracias, corregido. –

59

Uso System.Linq.Enumerable.OrderByDescending()?

Por ejemplo:

var items = someEnumerable.OrderByDescending(); 
18

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);     
} 
12

probar este otro modo:

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

Queryable.ThenBy

-1

LastOrDefault() por lo general no está funcionando pero con la Tolist() que va a funcionar. No es necesario utilizar OrderByDescending uso Tolis() como este.

GroupBy(p => p.Nws_ID).ToList().LastOrDefault(); 
+0

esto no responde la pregunta correctamente ... – Gaspa79

0

Esto sólo funciona en situaciones donde hay un campo numérico, pero se puede poner un signo menos delante del nombre de campo de este modo:

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

Sin embargo esto funciona un poco diferente de lo OrderByDescending cuando lo esté ejecutando en un int? o double? o decimal? campos.

Lo que sucederá es OrderByDescending los nulos estarán al final, vs con este método los nulos estarán al principio. Lo cual es útil si se quiere mezclar nulos alrededor sin dividir los datos en pedazos y empalmando más tarde.