c# - C# 字符串数组 orderBy 重音字符问题
问题描述
我写了一个小代码来声明一个字符串数组,我尝试使用和不使用stringCompare对其进行排序,但结果总是相同的。
使用我使用cultureInfo的StringComparer:
var strings = new string[] { "asd", "ásd", "álm", "alm" };
var ci = CultureInfo.GetCultureInfo("hu");
var comp = StringComparer.Create(ci, false);
Console.WriteLine(string.Join(", ", strings.OrderBy(item => item, comp)));
没有 StringComparer:
var strings = new string[] { "asd", "ásd", "álm", "alm" };
Console.WriteLine(string.Join(", ", strings.OrderBy(item => item)));
两个结果都是:
alm, álm, asd, ásd
但正确的结果将是:
alm, asd, álm, ásd
我做错了什么?
解决方案
您可以只使用Ordinal
字符串比较
var strings = new[] { "asd", "ásd", "álm", "alm" };
Console.WriteLine(string.Join(", ", strings.OrderBy(item => item, StringComparer.Ordinal)));
它给你
alm, asd, álm, ásd
推荐阅读
- reactjs - 在反应测试库中导入静态资产不起作用
- kubernetes - 在同一个 AKS 群集中部署两个具有 nginx 入口和 tls 终止的隔离应用程序实例
- scala - 如何使用 Scala 2.12 Zeppelin Notebook
- flutter - 轮播滑块项中的颤振动态列表
- maven - 使用 Intellij 运行配置安装 jar 文件
- vue.js - 有没有办法将 sass 抽象导入所有 vue 组件 - 使用 vite 作为构建工具
- node.js - 解析从 React Native 中的节点服务器接收到的字符串
- r - 如何使用 kable 和 map 将多个表保存为图像?
- visual-studio-code - 我在 ubuntu 中有错误,我使用“xmodmap”禁用“Pg Up”和“Pg Dn”键功能。但是在 vscode 中“xmodmap”不起作用
- floating-point - 如何将浮点变量转换为字符串?