You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logic Apps中实现类似.NET Version的版本字符串比较?

在Logic Apps中按.NET Version风格比较版本字符串的最优方案

你需要像.NET的Version类型那样识别主/次版本来比较新旧,不想用拆分字符串的暴力方法,这里有两种更简洁可靠的方案:

方法1:数组链式数值比较(无需额外变量)

不用单独拆分主、次版本变量,直接在条件判断里用一行表达式完成比较:

@greaterOrEquals(
    createArray(int(split(variables('CurrentImageVer'), '.')[0]), int(split(variables('CurrentImageVer'), '.')[1])),
    createArray(int(split(variables('TargetImageVer'), '.')[0]), int(split(variables('TargetImageVer'), '.')[1]))
)

原理是把版本拆分成主、次版本并转成整数,放到数组里后,Logic Apps会按元素顺序逐一比较数值,完全符合.NET Version的比较逻辑,代码更紧凑,也不用额外定义变量。

方法2:内联C#代码(Standard环境专属)

如果你的Logic Apps是Standard环境,直接复用.NET原生的Version类型来比较是最准确的,还支持带修订版、构建版的复杂版本字符串:

  1. 添加「内联代码」动作
  2. 输入以下C#代码:
using System;

public static bool Run(string currentVer, string targetVer)
{
    var current = Version.Parse(currentVer);
    var target = Version.Parse(targetVer);
    return current.CompareTo(target) >= 0;
}
  1. 传入currentVer和targetVer两个参数(对应你的两个版本字符串),执行后直接得到「当前版本是否更新或相等」的布尔结果。

暴力拆分方法的不足

你提到的暴力拆分需要单独定义主、次版本变量,代码冗余,而且如果后续版本格式扩展(比如新增修订版),需要修改多处代码,扩展性差。

内容的提问来源于stack exchange,提问作者Tim Lovell-Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:06:05