如果我在我的即时窗口中输入这个

String.Compare("AA", "SA");

我得到的结果是 1

这肯定是错误的吗? AA 小于 SA 所以它不应该是 -1 吗?

我正在运行 .NET 4

最佳答案

在丹麦文化中,“AA”被视为单个字母“Å”,按字母顺序排在“Z”之后。

CultureInfo cultureInfo = CultureInfo.GetCultureInfo("da-DK");
int comparision = String.Compare("AA", "SA", false, cultureInfo);
Console.WriteLine(comparision);

结果:
1

要获得您想要的结果,您可以使用不变文化(或具有您想要的排序顺序的特定文化):
CultureInfo cultureInfo = CultureInfo.InvariantCulture;
int comparision = String.Compare("AA", "SA", false, cultureInfo);
Console.WriteLine(comparision);

结果:
-1

关于c# - 字符串比较错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12620476/

10-12 17:59