为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查版本号是否是两个版本号之间的版本

如何检查版本号是否是两个版本号之间的版本

C#
HUWWW 2022-11-22 16:17:50

我正在做一个与 TFS 自动化相关的不太疯狂的项目。最近我讨论了如何以及什么是最有效的方法来检查我的版本号(主要、次要、HF、构建)- VersionToCheck 是否已在版本 SourceVersion 和 TargetVersion 之间发布。

结果,我们完成了非常疯狂的算法:

  • cv - 要检查的版本

  • sv - 源版本

  • 电视 - 目标版本

    if(c1.Major >= sv.Major and <= tv.Major) { //... 检查次要部分和其余部分 } else { return false; }

结果,我们应该得到 true/false 内部版本号在这两个版本之间。为了让它更难,我们没有像 0001.0002.0003 这样的重复数字,所以替换和比较两个整数是行不通的:)

任何提示表示赞赏。

好的,说得更清楚。例如,我想检查版本 1.0.44.4736 是否介于版本 1.0.44.11 和 1.1.0.5 之间。


查看完整描述

1 回答

?
慕桂英3389331

TA贡献1745条经验 获得超8个赞

最简单的方法是使用Version类——其他人已经为您编写了逻辑。


var c1 = new Version(major, minor, build, revision);

var sv = new Version(major, minor, build, revision);

var tv = new Version(major, minor, build, revision);


if (c1 >= sv && c1 <= tv) ....

以你的具体例子为例


好的,说得更清楚。例如,我想检查版本 1.0.44.4736 是否介于版本 1.0.44.11 和 1.1.0.5 之间。


var c1 = new Version(1, 0, 44, 4736);

var sv = new Version(1, 0, 44, 11);

var tv = new Version(1, 1, 0, 5);

if (c1 >= sv && c1 <= tv)

{

    Console.WriteLine(c1 + " is between " + sv + " and " + tv); 

}

在这里运行。


如果你真的想自己实现这个......


public static int Compare(Version x, Version y)

{

    int result = x.Major.CompareTo(y.Major);

    if (result != 0)

        return result;

    result = x.Minor.CompareTo(y.Minor);

    if (result != 0)

        return result;

    result = x.Build.CompareTo(y.Build);

    if (result != 0)

        return result;

    result = x.Revision.CompareTo(y.Revision);

    return result;

}

然后


if (Compare(c1, sv) >= 0 && Compare(c1, tv) <= 0) ...


查看完整回答
反对 回复 6天前
  • 1 回答
  • 0 关注
  • 6 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信