在比较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)
我错过了什么吗?