小编use*_*639的帖子

不同的CLR版本会产生不同的排序结果

在比较C#中的字符串时,不同的clr在Windows 7 sp1 x64上给出了不同的结果.这是示例代码:

List<string> myList = new List<string>();
myList.AddRange(new[] { "!-", "-!", "&-l", "&l-", "-(", "(-", "-*", "*-", ".-", "-.", "/'", "-/" });
myList.Sort();
Console.WriteLine(Environment.Version);
myList.ForEach(Console.WriteLine);
Console.WriteLine();
Console.WriteLine(string.Compare("!-", "-!"));
Console.WriteLine("!-".CompareTo("-!"));
Run Code Online (Sandbox Code Playgroud)

以下是示例输出:


如果我将Target Framework设置为4.0:

4.0.30319.18444
!-
-!
&l-
&-l
(-
-(
*-
-*
.-
-.
/'
-/

-1
-1
Run Code Online (Sandbox Code Playgroud)

如果我将Target Framework设置为2.0:

2.0.50727.5485
-!
!-
&-l
&l-
-(
(-
-*
*-
-.
.-
-/
/'

1
1
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

.net c#

13
推荐指数
1
解决办法
360
查看次数

标签 统计

.net ×1

c# ×1