排序字符串列表

-1 c#

当我尝试在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();
Run Code Online (Sandbox Code Playgroud)

我剩下的是

a
bbb
test1
test12
aaa
AAAaaAA
Run Code Online (Sandbox Code Playgroud)

我不明白为什么

aaa 
AAAaaAA
Run Code Online (Sandbox Code Playgroud)

到底是什么时候?任何人都可以解释为什么会这样吗?

Nic*_*cky 5

这是因为你的文化.我是丹麦人,我得到了同样的结果.(因为"aa"是"å").

 System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
Run Code Online (Sandbox Code Playgroud)

在列表之前添加此项,然后您就可以获得预期的结果.

其他人要复制问题:

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("da");
Run Code Online (Sandbox Code Playgroud)

解:

a.Sort(StringComparer.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)