You need to enable JavaScript to run this app. 如何在C#中按字符串包含的版本号对字符串列表进行降序排序
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中按字符串包含的版本号对字符串列表进行降序排序

解决方案

你可以通过正则提取字符串中的版本号,结合Version类自带的排序能力实现需求,示例代码如下:

using System.Text.RegularExpressions;

// 版本号匹配正则
var versionRegex = new Regex(@"\d+\.\d+\.\d+\.\d+");

// 排序逻辑可复用给所有同类列表
list0 = list0.OrderByDescending(o =>
{
    // All固定排在最后
    if (o == "All") return 0;
    return 1;
}).ThenByDescending(o =>
{
    if (o == "All") return new Version(0, 0, 0, 0);
    // 提取版本号并转为Version结构实现正确数值排序
    var match = versionRegex.Match(o);
    return match.Success ? new Version(match.Value) : new Version(0, 0, 0, 0);
}).ToList();

// 输出测试
foreach (var item in list0)
{
    Console.WriteLine(item);
}

代码说明

  • 第一级排序先把All放到列表末尾
  • 第二级排序使用Version结构进行比较,会自动按版本段的数值大小排序,不会出现字符串排序中12 < 3的错误
  • 正则匹配兼容你给出的三种不同前缀的版本字符串格式,不需要额外处理前缀分隔符差异

输出效果(以list0为例)

和要求的预期结果完全一致:
MAS_Prod_1.2107.0.12, MAS_Prod_1.2107.0.11, MAS_Prod_1.2107.0.10, MAS_Prod_1.2107.0.8, MAS_Prod_1.2107.0.7, MAS_Prod_1.2107.0.4, MAS_Prod_1.2107.0.3, All

内容的提问来源于stack exchange,提问作者Anand Kishore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 11:54:01