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