2010-08-16 5 views
4

Есть ли способ, из коллекции, сортировать коллекцию в алфавитном порядке (используя C# 2.0?).Сортировка коллекции в алфавитном порядке

Thanks

+1

См. Http://stackoverflow.com/questions/188141/c-list-orderby-alphabetical-order –

+5

@ Доминичный вопрос составляет около 3,5, что означает Linq. – Will

+0

@ Dominic: Я вижу Q и большинство A, используя C# 3 –

ответ

11

О каких коллекциях мы говорим? A List<T>? ICollection<T>? Массив? Каков тип, хранящийся в коллекции?

Предполагая, что в List<string>, вы можете сделать это:

List<string> str = new List<string>(); 
// add strings to str 

str.Sort(StringComparer.CurrentCulture); 
+0

Рефакторинг! (5 больше, чтобы пойти ..) –

+0

Мне не нравится использовать 'var' в общих ситуациях – thecoop

+0

@thecoop Если контекст не является видимым, var is awesome – sparkyShorts

4

Вы можете использовать SortedList.

+0

Gah, получил меня на минуту. – Will

1
List<string> stringList = new List<string>(theCollection); 
stringList.Sort(); 

List<string> реализует ICollection<string>, так что вы до сих пор все коллекции-ориентированной функциональности даже после того, как вы преобразовать в список.

3

Как насчет Array.Sort? Даже если вы не предоставите собственный компаратор, по умолчанию он будет отсортировать массив в алфавитном порядке:

var array = new string[] { "d", "b" }; 

Array.Sort(array); // b, d 
Смежные вопросы