Я всегда предполагал, что .Net сравнивает строки лексикографически, в соответствии с текущей культурой. Но есть нечто странное, когда одна из строк заканчивается на '-':
"+".CompareTo("-")
Returns: 1
"+1".CompareTo("-1")
Returns: -1
Я понял это для всех культур, которые я пробовал, включая инвариантную.
Может кто-нибудь объяснить, что происходит, и как я могу получить последовательное посимвольное упорядочение для текущей локали?