Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串比较错误_C#_.net 4.0_Compare_Immediate Window - Fatal编程技术网

C# 字符串比较错误

C# 字符串比较错误,c#,.net-4.0,compare,immediate-window,C#,.net 4.0,Compare,Immediate Window,如果我在即时窗口中键入此项 String.Compare("AA", "SA"); 我得到的结果是1 这肯定是错误的吗?AA比SA小,所以它不应该是-1吗 我正在运行.NET 4,在丹麦文化中,“AA”被视为一个字母“Å”,按字母顺序排在“Z”之后 结果: 1 -1 要获得所需的结果,可以使用不变区域性(或具有所需排序顺序的特定区域性): 结果: 1 -1 我得到-1:这让我很困惑,我不明白它为什么返回错误的结果。如果可能,应用程序应该使用接受CompareOptions值的字符串比较

如果我在即时窗口中键入此项

String.Compare("AA", "SA");
我得到的结果是1

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

我正在运行.NET 4,在丹麦文化中,“AA”被视为一个字母“Å”,按字母顺序排在“Z”之后

结果:

1
-1
要获得所需的结果,可以使用不变区域性(或具有所需排序顺序的特定区域性):

结果:

1
-1

我得到-1:这让我很困惑,我不明白它为什么返回错误的结果。如果可能,应用程序应该使用接受CompareOptions值的字符串比较方法来指定预期的比较类型。作为一般规则,面向用户的比较最好通过使用语言选项(使用当前区域性)来实现,而安全性比较应该指定Ordinal或OrdinalIgnoreCase。是的,这是一个文化问题,在丹麦语中,他们的字母表中有一个字母“AA”,出现在“SA”之后。这是为了显示一个列表,以便用户猜测,如果他们习惯了,我会保持原样。就是这样!检查了我的文化,并将其设置为丹麦语lol。我想我会发疯的。我只是写了一篇文章来查找它返回的所有文化
1