当我尝试在C#中对字符串列表进行排序时,结果有点奇怪,
List<string> a = new List<string>();
a.Add("test1");
a.Add("test12");
a.Add("bbb");
a.Add("a");
a.Add("aaa");
a.Add("AAAaaAA");
a.Sort();
我剩下的是
a
bbb
test1
test12
aaa
AAAaaAA
我不明白为什么
aaa
AAAaaAA
结束了吗? 谁能解释为什么会这样呢?
答案 0 :(得分:5)
这是因为你的文化。我是丹麦人,我得到了同样的结果。 (可能因为“aa”是“å”)。
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
在列表前添加此项,然后您就可以获得预期的结果。
让其他人复制问题:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("da");
解决方案:
a.Sort(StringComparer.InvariantCulture);