我有一个 UTF-8 字符串列表,我想使用Enumerable.OrderBy对其进行排序。字符串可以包含任意数量的字符集——例如,英语、德语和日语,或者它们的混合,甚至。
例如,这是一个示例输入列表:
["東京","North 東京", "München", "New York", "Chicago", "大阪市"]
我对使用StringComparer.CurrentCulture是否是传递给的正确字符串比较参数感到困惑OrderBy()
。如果应用程序的当前文化是,en-US
但我仍然想“正确”排序 UTF-8 数据而不仅仅是en-US
排序规则?
我的困惑可能源于我对Oracle 中NLSSORT函数的理解,该函数与 .NET 字符串比较和排序语义不太匹配。例如,设置 NLS_SORT=Japanese_M 意味着它将正确地对拉丁语、西欧语和日语进行排序,无论是否有任何或所有字符出现在可排序列的给定字符串中。