C#中的字符串排序问题

我有这样的清单

    List<string> items = new List<string>();

items.Add("-");

items.Add(".");

items.Add("a-");

items.Add("a.");

items.Add("a-a");

items.Add("a.a");

items.Sort();

string output = string.Empty;

foreach (string s in items)

{

output += s + Environment.NewLine;

}

MessageBox.Show(output);

输出返回为

-

.

a-

a.

a.a

a-a

我期望结果在哪里

-

.

a-

a.

a-a

a.a

任何想法,为什么“ aa”没有出现在“ aa”之前,而“ a-”出现在“ a”之前。

回答:

如果您希望字符串排序" title="字符串排序">字符串排序基于实际字节值而不是当前区域性定义的规则,则可以按顺序排序:

items.Sort(StringComparer.Ordinal);

这将使结果在所有文化中均保持一致(但会在“ 9”之前产生“ 14”的不直观排序,可能不是您想要的)。

以上是 C#中的字符串排序问题 的全部内容, 来源链接: utcz.com/qa/429552.html

回到顶部