Странный порядок перечисления каталогов

Я пытаюсь написать небольшую программу, которая даст мне имя первой папки в алфавитном порядке. Чтобы проверить это, я дал ему папку, в которой есть следующие подпапки:

Сезон 4 Сезон 5 Сезон 6 Сезон 7 Сезон 8 Сезон 9 Сезон 10 Сезон 11

И это порядок, в котором я хочу, чтобы моя программа возвращала. Но когда я запускаю следующий код:

string x = "";
foreach (string dir in Directory.EnumerateDirectories(root))
{
      x += dir + Environment.NewLine;
}
MessageBox.Show(x);

Вывод следующий:

10 сезон 11 сезон 4 сезон 5 сезон 6 сезон 7 сезон 8 сезон 9 сезон

Как я могу запустить свою программу с 4 и дойти до 11? Заранее спасибо, Илья


person iliyaitsme    schedule 21.07.2015    source источник
comment
Вам нужно получить, а затем отсортировать имена каталогов, используя естественный порядок сортировки. См. мой недавний ответ здесь: stackoverflow.com/a/31538443/106159   -  person Matthew Watson    schedule 21.07.2015


Ответы (1)


Ваши возвращаемые данные отсортированы!
1 предшествует 4, поэтому алгоритм работает правильно. Если вы хотите получить желаемые результаты без дополнительной настройки, вам следует переименовать папки в «season 04» и так далее.

person Tobias Knauss    schedule 21.07.2015