[Mono-bugs] [Bug 63981][Maj] Changed - Sorting of strings difference in .NET and Mono
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Tue, 31 Aug 2004 10:41:57 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by lupus@ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=63981
--- shadow/63981 2004-08-31 09:50:43.000000000 -0400
+++ shadow/63981.tmp.29167 2004-08-31 10:41:57.000000000 -0400
@@ -1,15 +1,15 @@
Bug#: 63981
Product: Mono: Class Libraries
Version: unspecified
OS: unknown
OS Details:
-Status: RESOLVED
-Resolution: NOTABUG
+Status: REOPENED
+Resolution:
Severity: Unknown
-Priority: Minor
+Priority: Major
Component: System
AssignedTo: mono-bugs@ximian.com
ReportedBy: maurits.rijk@philips.com
QAContact: mono-bugs@ximian.com
TargetMilestone: ---
URL:
@@ -67,6 +67,38 @@
You need to use the Invariant culture if you want the result of
sorting strings to be predictable.
See the documentation for System.String.Compare(). You're seeing the
default CompareOption in action, which makes punctuation count less
than letters. It's called "word sort".
+
+------- Additional Comments From lupus@ximian.com 2004-08-31 10:41 -------
+See the following test.
+The output on the MS runtime is:
+current culture is: italiano (Italia)
+foo.obj
+foobar.obj
+The output in mono (with LANG=it_IT):
+current culture is: italiano (Italia)
+foobar.obj
+foo.obj
+
+So we give embarassingly incorrect results. I bet the same happens
+with other cultures, probably Maurits has nl_NL.
+
+using System;
+using System.Collections;
+using System.Globalization;
+
+class Class1 {
+ static void Main(string[] args) {
+ ArrayList array = new ArrayList();
+ array.Add("foo.obj");
+ array.Add("foobar.obj");
+ array.Sort();
+ Console.WriteLine ("current culture is: {0}",
+CultureInfo.CurrentCulture.NativeName);
+ foreach (string s in array) {
+ Console.WriteLine(s);
+ }
+ }
+}