gpt4 book ai didi

c# - C# 中错误的字符串排序

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:59 25 4
gpt4 key购买 nike

我运行了这个:

void Main()
{
List<string> strings = new List<string>{"aaa", "z", "a"};
Console.WriteLine(string.Join("\n", strings.OrderBy(k => k)));
}

输出是:

a
z
aaa

这不可能是对的!我期待着

a
aaa
z

可能是什么问题?

最佳答案

我已经意识到 OrderBy 使用当前语言环境对字符串进行排序。在我的示例中,语言环境是丹麦语,其中“aa”位于“z”之后,因为它代表字母“å”,它附加在字母表的末尾。

这让我很吃惊,因为我期待英语排序,但我没有意识到语言环境一直是丹麦语;我系统上的许多其他设置都设置为英语,包括语言。这让我的预期错了。

要获得我期望的顺序,将 StringComparer.InvariantCulture 传递给 OrderBy 就足够了:

void Main()
{
List<string> strings = new List<string>{"aaa", "z", "a"};
Console.WriteLine(string.Join("\n", strings.OrderBy(k => k, StringComparer.InvariantCulture)));
}

输出:

a
aaa
z

关于c# - C# 中错误的字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com