2013-08-31 14 views

Odpowiedz

2

użycie tego

listCustomFields.sort(); 
+2

Hej @MurtazaMunshi Nie rozumiem, dlaczego wybrałeś tę odpowiedź. Odpowiedź Marcina jest szybsza i lepiej napisana. Jeśli istnieje więcej niż jedna odpowiedź, wygląda to tak samo, wybierz najszybszą i najlepszą jakość. –

+2

Przepraszam, że jestem nowy, aby przepełnić stos i nie stosować tutaj zasad. Będę pamiętać o twoich słowach. Dzięki za kierowanie mną. –

21

Można użyć LINQ OrderBy metodę (wygeneruje nowy List<string> z pozycji sortowane):

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

lub List<T>.Sort metoda (będzie posortować listę w kolejności):

listCustomField.Sort(); 
+0

Myślę, że to jest lepsza odpowiedź, ponieważ musiałem zrobić to w malejącej kolejności, a linq obsługuje to – mmeasor

1

Możesz użyć numeru OrderBy;

Sortuje elementy sekwencji w porządku rosnącym według .

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

Jako alternatywę można użyć również 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); 
} 

Wyjście będzie;

Class 
FirstName 
MiddleName 

Tutaj jest DEMO.

0

Nie potrzeba LINQ do tego: zamiast tworzenia posortowaną kopie można sortować listy w miejscu poprzez wywołanie Sort() metodę na nim:

listCustomFields.Sort(); 

The zamówienie jest domyślnie rosnące. Jeśli musisz to zmienić, podaj niestandardowego porównywalnika.

Powiązane problemy