2010-06-18 10 views
20
.OrderBy(y => y.Year).ThenBy(m => m.Month); 

Cómo configurar descending orden?orden múltiplo linq DESCENDENTE

EDITAR:

yo probamos este:

var result = (from dn in db.DealNotes 
         where dn.DealID == dealID       
         group dn by new { month = dn.Date.Month, year = dn.Date.Year } into date 
         orderby date.Key.year descending 
         orderby date.Key.month descending 
         select new DealNoteDateListView { 
          DisplayDate = date.Key.month + "-" + date.Key.year, 
          Month = date.Key.month, 
          Year = date.Key.year, 
          Count = date.Count() 
         }) 
         //.OrderBy(y => y.Year).ThenBy(m => m.Month) 
         ; 

y parece trabajar. ¿Es incorrecto usar orderby dos veces como lo usé aquí?

Respuesta

44

Usted puede obtener el orden descendente mediante el uso de un par diferente de los métodos:

items.OrderByDescending(y => y.Year).ThenByDescending(m => m.Month); 

Usando consulta LINQ, puede escribir:

from date in db.Dates 
orderby date.Key.year descending, date.Key.month descending 
select new { ... } 

El truco es que sólo se necesita un orderby cláusula - si agrega varios de estos, la lista se volverá a ordenar cada vez. Para ordenar los elementos que tienen la primera clave igual usando otra clave, debe separarlos usando , (orderby se traduce a OrderBy o OrderByDescending mientras que , se traduce a o ThenByDescending).

+0

genial, gracias :) Edité mi pregunta, ¿podría echar un vistazo? –

Cuestiones relacionadas