2010-10-13 15 views
107

Desidero ricevere una lista ordinata da 'Product.Name' in ordine discendente.C# list.Orderby decrescente

Simile alla funzione di seguito che ordina l'elenco in ordine crescente, solo al contrario, è possibile?

var newList = list.OrderBy(x => x.Product.Name).ToList(); 
+0

Il problema potrebbe essere che hai scritto 'toList' invece di' ToList'? –

+1

Penso che intendesse che non accetta la parola chiave 'discendente', perché non ha iniziato la sua espressione con' da x nella lista ... ' – StriplingWarrior

+1

Spiacente, non ho copiato esattamente quel codice, ma lo ho digitato da memoria. Il mio codice attuale funziona, ma restituisce solo una lista ordinata in ordine crescente. – PFranchise

risposta

194

Certo:

var newList = list.OrderByDescending(x => x.Product.Name).ToList(); 

Doc: OrderByDescending(IEnumerable, Func).

In risposta al tuo commento:

var newList = list.OrderByDescending(x => x.Product.Name) 
        .ThenBy(x => x.Product.Price) 
        .ToList(); 
+2

Quindi la tua modifica ordinerà per nome (da z-> a) quindi prezzo (basso -> alto)? – PFranchise

+10

Sì, è corretto. Le chiamate a OrderBy o ThenBy sono sempre in ordine crescente. I metodi OrderByDescending e ThenByDescending sono quelli che useresti per la discesa. – StriplingWarrior

8
list.OrderByDescending(); 

funziona per me.

+2

Questo non ha fatto nulla senza fare list = list.OrderByDescending(). ToList(); – Almo

-2
list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList(); 

Quale funziona per me per mostrare l'ora ordinati in ordine decrescente.

+15

Questa risposta è già stata data quasi tre anni fa – Dutts

4
var newList = list.OrderBy(x => x.Product.Name).Reverse() 

Questo dovrebbe fare il lavoro.

0

guardare in questo pezzo di codice dal mio progetto

Sto cercando di riordinare l'elenco basato su una proprietà all'interno del mio modello,

allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name)); 

ma ho affrontato un problema quando un small and capital letters exist , quindi per risolverlo, ho usato il comparatore di stringhe.

allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase) 
Problemi correlati