2013-08-31 27 views

risposta

2

uso questo

listCustomFields.sort(); 
+2

Hey @MurtazaMunshi Non capisco perché si seleziona questa risposta. La risposta di Marcin è più veloce e scritta meglio. Se ci sono più di una risposta sembrano uguali, scegli la migliore e la migliore. –

+2

Scusa se sono nuovo per lo stack overflow in questo caso non apprezzo le regole. Terrò le tue parole in mente. Grazie per avermi guidato. –

21

È possibile utilizzare LINQ metodo OrderBy (genererà nuova List<string> con elementi ordinati):

var ordered = listCustomField.OrderBy(x => x).ToList(); 

o List<T>.Sort metodo (sarà ordinare l'elenco sul posto):

listCustomField.Sort(); 
+0

penso che questa sia la risposta migliore perché avevo bisogno di farlo in ordine decrescente, e linq supporta questo – mmeasor

1

Puoi usare OrderBy come;

Ordina gli elementi di una sequenza nell'ordine crescente .

listCustomFields = listCustomFields.OrderBy(n => n).ToList(); 

In alternativa, è possibile utilizzare anche List<T>.Sort Method.

List<String> listCustomFields = new List<String>() { "FirstName", "MiddleName", "Class" }; 
listCustomFields = listCustomFields.OrderBy(n => n).ToList(); 

foreach (var item in listCustomFields) 
{ 
    Console.WriteLine(item); 
} 

Uscita sarà;

Class 
FirstName 
MiddleName 

Qui uno DEMO.

0

Non hai bisogno di LINQ per questo: invece di creare una copia ordinata, è possibile ordinare l'elenco sul posto chiamando Sort() metodo su di esso:

listCustomFields.Sort(); 

Il l'ordine è implicitamente in ascensione. Se è necessario cambiarlo, fornire un comparatore personalizzato.

Problemi correlati