По умолчанию для сравнения строк используются специфичные для культуры настройки.Эти настройки позволяют применять различные порядки и веса к буквам и символам;например, «резюме» и «резюме» будут отображаться довольно близко друг к другу при сортировке с использованием большинства настроек культуры, поскольку «é» упорядочивается сразу после «e» и намного раньше «f», даже несмотря на то, что кодовая страница Unicode размещает «é»после остального английского алфавита.Аналогично, символы, которые не являются пробелами, занимают позицию в строке, но считаются «связующими», как тире, косые черты и т. Д. Имеют малый «вес», так что они рассматриваются только как прерыватели.Это означает, что «ab» будет отсортировано сразу после «ab» и перед «ac», потому что тире менее важен, чем буквы.
То, что вы хотите, - это «порядковая сортировка», где строки сортируются на основе первого различия в строке на основе относительных порядковых позиций различных символов в кодовой странице Unicode.Это поместит «-d» перед «а», если «-» также будет стоять перед «а», потому что тире считается полным «символом» и сравнивается с символом «а» в той же позиции.Тем не менее, в списке реальных слов это поместило бы слова «повторить», «возобновить», «канифоль», «рубль», «повторно сделать» и «резюме» в таком порядке, когда в отсортированном по порядковому порядку списке, что, возможно, не имеет смысла в контексте, и, конечно, не для не говорящего по-английски.