самый быстрый способ сортировки списка строк - PullRequest
1 голос
/ 03 апреля 2012

У меня есть список таких строк

«Имя-Фамилия» (через тире -)

Мне нужно отсортировать этот список по имени, а затем по фамилии

Какой лучший способ сделать это. мне нужно обработать 30000 строк менее чем за 1 секунду.

Мне предложили использовать LINQ to Entities.

как лучше всего это использовать?

Большое спасибо за любую помощь

РЕДАКТИРОВАТЬ: чтобы избежать путаницы, ввод List<string>

Ответы [ 3 ]

3 голосов
/ 03 апреля 2012

Вы можете использовать LINQ (что позволит вам сортировать без изменения данных в списке):

names.OrderBy(s => s.Split('-')[0]).ThenBy(s => s.Split('-')[1]);
2 голосов
/ 25 октября 2012

Вы также можете использовать делегатов

names.Sort(
    delegate(string str1, string str2)
    {
        return str1.CompareTo(str2);
    }
);
0 голосов
/ 03 апреля 2012

Разделите ваш массив строк на 26 подмассивы, по одной на каждую букву алфавита. Затем повторите процесс для каждого подмассива.

Этот метод очень эффективен для сортировки строк. Это известно как сортировка ведра .

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