如果我在即时窗口中输入它
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