Home All Groups Group Topic Archive Search About

Non-Transitive String.CompareTo

Author
13 Nov 2006 1:15 PM
Marc Gravell
Hiya; I'm waving a flag for an issue raised on last week - what I believe to
be quite a serious bug in String.CompareTo

I was hoping to flag some input from MS... either directly or indirectly via
a few more votes on the bug report:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=236900

Why do I think this is so important? Well, without a clear "yup, it is
broken for edge conditions {x}", it is hard to have /complete/ faith in a
whole range of string-sort-critical operations... for instance anything
involving SortedList, SortedDictionary, etc. Granted it happens in 1.1 and
seems to have taken a while to materialise... so probably a very rare case.
But how rare? We don't know.

[see connect bug for simple transitivity test case]
This clearly fails the required transitivity of comparers, stated here:
http://msdn2.microsoft.com/en-us/library/43hc6wht.aspx (last point in "Notes
to Implementers")

Previous thread "Serious Bug System.Collections Sort" in
microsoft.public.dotnet.languages.csharp, or:
http://groups.google.co.uk/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/8fae5c350c172c28

Cheers,

Marc

AddThis Social Bookmark Button