Какой самый простой способ сортировки ArrayList, содержащий только строки? - PullRequest
0 голосов
/ 01 февраля 2011

Я видел, что если я сортирую пользовательский класс, то я должен реализовать интерфейс IComparable.Но в этом случае я не могу контролировать «класс строки».

Спасибо.

Ответы [ 5 ]

4 голосов
/ 01 февраля 2011

Вместо ArrayList используйте List для предотвращения кэширования, но во всех mylist.Sort() см. Метод сортировки списка массива и Метод сортировки списка

2 голосов
/ 01 февраля 2011

см .: http://msdn.microsoft.com/en-us/library/8k6e334t.aspx

// Sorts the values of the ArrayList.
theArrayList.Sort();
2 голосов
/ 01 февраля 2011

Существует перегрузка Sort метода , позволяющая указать IComparer для использования.

1 голос
/ 01 февраля 2011

Во-первых, я бы рекомендовал использовать List<string> вместо ArrayList.Это предоставит вам метод .Sort(), который будет «просто работать».

В противном случае вы можете использовать LINQ для этого из ArrayList, например:

 // This makes a new List<T>
 var sorted = arrayList.Cast<string>().OrderBy(s => s).ToList(); 

Использование ArrayList.Sort будет более эффективным, и он будет сортироваться вместо копирования ...

 arrayList.Sort();
1 голос
/ 01 февраля 2011

Вы используете ArrayList по причине? Это предварительная универсальная коллекция, которая была заменена на List для любых целей и задач. Если вы используете список, то вы можете просто использовать метод sort(), и он все обработает за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...