gpt4 book ai didi

.net - 在这种情况下,StringComparer.CurrentCulture 是正确的选择吗?

转载 作者:行者123 更新时间:2023-12-01 12:00:41 26 4
gpt4 key购买 nike

我有一个 UTF-8 字符串列表,我想使用 Enumerable.OrderBy 对其进行排序.字符串可能包含任意数量的字符集 - 例如,英语、德语和日语,或者它们的混合,甚至。

例如,这是一个示例输入列表:

["東京","North 東京", "München", "New York", "Chicago", "大阪市"]

我很困惑是否使用 StringComparer.CurrentCulture是传递给 OrderBy() 的正确字符串比较参数。如果应用程序的当前区域性是 en-US 但我仍想“正确”排序 UTF-8 数据而不仅仅是 en-US 排序规则怎么办?

我的困惑可能源于我对 NLSSORT 的理解Oracle 中的函数与 .NET 字符串比较和排序语义不太匹配。例如,设置 NLS_SORT=Japanese_M 意味着它将正确地对拉丁语、西欧语和日语进行排序,而不管任何或所有字符是否出现在可排序列的给定字符串中。

最佳答案

没有一种比较适用于所有文化。

如果不检测语言并相应地进行选择,InvariantCulture 是您最好的选择。作为您链接注释的文档:

DON'T: Use StringComparison.InvariantCulture-based string operations in most cases; one of the few exceptions would be persisting linguistically meaningful but culturally-agnostic data.

我加了重点。该异常或多或少就是您正在做的事情。

关于.net - 在这种情况下,StringComparer.CurrentCulture 是正确的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016384/

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