I\'m seeing some very strange sorting behaviour using CaseInsensitiveComparer.DefaultInvariant. Words that start with a leading hyphen \"-\" end up sorted as if the hyphen w
Sort order is dependent on the culture, so you can't assume characters will sort in ASCII order.
http://msdn.microsoft.com/en-us/library/a7zyyk0c.aspx
In your example, "h" (U+0048) is before "dash" (U+2013), so "hello" will appear before "-less". "." (U+002E) is before both, so ".net" appears first.