c# - 使用 LINQ 的 OrderBy 对包含数字和字符的项目的数组进行排序无法正常工作
问题描述
我正在尝试缩短包含数字和字符的 ID,如下所示
string[] dataIDs = new string[] { "001", "002", "010", "011", "EMP001", "EMP010", "EMP002", "EMP011" };
foreach (var item in dataIDs.OrderBy(x => x))
{
Console.WriteLine(item);
}
输出:
'001', '010', '011', '002', 'EMP001', 'EMP010', 'EMP011', 'EMP002'
但我期待:
'001', '002', '010', '011', 'EMP001', 'EMP002', 'EMP010', 'EMP011'
解决方案
你可以用这个:)
string[] dataIDs = new string[] { "001", "002", "010", "011", "EMP001", "EMP010", "EMP002", "EMP011" };
foreach (var item in dataIDs.OrderBy(x => x, StringComparer.Ordinal))
{
Console.WriteLine(item);
}
推荐阅读
- python - 如何找到一个numpy数组的多个均匀分布的方法?
- c - 有没有办法知道c中终端的背景颜色?
- r - 如何将 MA 列表转换为表达式矩阵?
- ios - XCode 12.4 - 如何使用快捷方式复制一行
- javascript - nextjs - 购物车总金额准确的购物车问题
- bootstrap-5 - Bootstrap 下拉菜单始终显示且不关闭
- c - C 中的浮点异常错误,尽管代码中没有 %0
- cordova - 安装 codepush 插件后,Android 应用程序一直停止
- excel - Excel:在其他列中选择列中的最佳值
- css - 如果使用纯 CSS 选中复选框,则更改 html 标签背景