字符串比较错误

时间:2012-09-27 11:36:06

标签: c# .net-4.0 compare immediate-window

如果我将其输入我的立即窗口

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

我得到1的结果

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

我正在运行.NET 4

1 个答案:

答案 0 :(得分:7)

在丹麦文化中,“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