Как сделать Array.Sort чувствительным к регистру?

В основном мне нужно отсортировать список строк, но есть нижний регистр, верхний регистр и цифры в строках. В настоящее время, когда он сортирует их, он оценивает a и A как одну и ту же букву, поэтому:

acfgh
aztyu
Ahtwm

будет отсортирован по:

acfgh
Ahtwm
aztyu

Но я хочу, чтобы он ранжировал заглавные буквы перед строчными (и цифры перед заглавными), чтобы я получил:

Ahtwm
acfgh
aztyu

Я бы предпочел использовать методы, уже содержащиеся в библиотеке, чем создавать свою собственную быструю сортировку.


person AndrewB    schedule 25.05.2013    source источник


Ответы (1)


Не надо изобретать велосипед :-)

Предположим, массив строк с именем myArray:

Array.Sort(myArray, StringComparer.Ordinal)

сделает свое дело (заглавные буквы перед строчными и цифры перед заглавными).

Пример:

Dim str = String() = {"aa", "Aa", "1a", "1A"}
Array.Sort(str, StringComparer.Ordinal)

Выход:

1A
1a
Aa
aa
person Chris    schedule 25.05.2013
comment
Спасибо за помощь, очень помогли! - person AndrewB; 26.05.2013