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(x1..)).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());

总结:

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

相关推荐
caimouse1 小时前
ReactOS 窗口系统分析(23):键盘 — keyboard.c + kbdlayout.c
c语言·开发语言·计算机外设
Emily156853598702 小时前
Emerson 1C31129G03 Analog Input Module
java·开发语言·前端·plc·emerson·1c31129g03·input module
就叫_这个吧7 小时前
Java递归方法实现面包屑导航
java·开发语言
fīɡЙtīиɡ ℡7 小时前
AI 应用系统设计
java·开发语言·人工智能
csdn_aspnet8 小时前
C# 在逗号分割的字符串中判断是否包含指定字符
c#·正则·linq·string·regex·contains
今天AI了吗8 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
宝桥南山9 小时前
Blazor Web Assembly - 体验一下Authentication State从Server共享给Client
microsoft·微软·c#·asp.net·.net·.netcore
TELL5219 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
动词ing9 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习10 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展