c# - 如何对列表进行排序> 按数值的数字部分?
问题描述
var keyValuePairList = model.someDictionary.ToList();
keyValuePairList .OrderBy(r => r.Value);
问题是按字母数字值排序不正确。
输出:CR1 CR10 CR11 CR2 CR20
预期:CR1 CR2 CR10 CR11 CR20
解决方案
如果每个字符串都以两个字母字符开头,我将使用以下内容:
keyValuePairList.OrderBy(r => int.Parse(r.Value.Substring(2)));
否则,请使用正则表达式,如本答案中所述。
var re = new Regex(@"\d+$");
keyValuePairList.OrderBy(x => int.Parse(re.Match(x.Value).Value));
推荐阅读
- google-apps-script - 异常:无法检索下一个对象:迭代器已到达末尾。第 26 行错误
- elasticsearch - ElasticSearch 转义特殊字符
- flutter - 从单词列表中检索特定字符串以进行颤动
- javascript - Docker 在检查 core-js 依赖关系时构建反应应用程序时挂起
- reactjs - 为什么我不能像这样使用调度程序设置和更改我的整个状态?
- python - python urllib,返回特定url的空页面
- matlab - 皮尔逊相关系数
- excel - 如何从不同的工作表中进行加法和减法并在excel中的另一个工作表上显示结果
- android - Android socket io客户端没有从javascript服务器接收广播消息
- html - 如何在标题中移动图像?