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