C# 数字字符串排序

例如:string[] strings = { "D10", "D2", "D1","D0", "D3", "D9" };

升序后:strings = { "D0", "D1", "D2","D3", "D9", "D10" };

方法一 使用linq语法糖OrderBy+int.Parse,如下:

var temp= strings.OrderBy(x => int.Parse(x[1..])).ToArray()

方法二:自定义比较器

cs 复制代码
    public class SemiNumericComparer : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            // 提取字符串中的数字部分
            string numPartX = x.Substring(1);
            string numPartY = y.Substring(1);
 
            // 比较数字长度
            if (numPartX.Length > numPartY.Length) return 1;
            if (numPartX.Length < numPartY.Length) return -1;
 
            // 如果长度相同,直接比较字符串
            return string.Compare(numPartX, numPartY, StringComparison.Ordinal);
        }
    }

使用:Array.Sort(strings, new SemiNumericComparer());

总结:

以上两个方法都可以实现数字字符串排序,如果数据量大推荐方法二

相关推荐
偶像你挑的噻19 小时前
3.Qt-基础布局以及事件
开发语言·数据库·qt
c#上位机20 小时前
halcon多个区域合并为1个区域—union1
c#·上位机·halcon·机器视觉
CHANG_THE_WORLD20 小时前
Python 学习三 Python字符串拼接详解
开发语言·python·学习
诸葛老刘20 小时前
next.js 框架中的约定的特殊参数名称
开发语言·javascript·ecmascript
c#上位机20 小时前
halcon图像增强——图像取反
图像处理·算法·c#·halcon
zwm26988881520 小时前
悦龙台 监控掉线问题
c#
霸王大陆20 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-2
android·开发语言·php
c#上位机21 小时前
halcon图像去噪—导向滤波
图像处理·人工智能·计算机视觉·c#·halcon
釉色清风21 小时前
在openEuler玩转Python
linux·开发语言·python
han_hanker21 小时前
这里使用 extends HashMap<String, Object> 和 类本身定义变量的优缺点
java·开发语言