pen*_*bot 3 c# compare immediate-window .net-4.0
如果我输入我的立即窗口
String.Compare("AA", "SA");
Run Code Online (Sandbox Code Playgroud)
我得到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);
Run Code Online (Sandbox Code Playgroud)
结果:
1
Run Code Online (Sandbox Code Playgroud)
要获得您想要的结果,您可以使用不变文化(或具有您所需排序顺序的特定文化):
CultureInfo cultureInfo = CultureInfo.InvariantCulture;
int comparision = String.Compare("AA", "SA", false, cultureInfo);
Console.WriteLine(comparision);
Run Code Online (Sandbox Code Playgroud)
结果:
-1
Run Code Online (Sandbox Code Playgroud)