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

我正在做一个与 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 之间。


HUWWW
浏览 109回答 1
1回答

慕桂英3389331

最简单的方法是使用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){&nbsp; &nbsp; Console.WriteLine(c1 + " is between " + sv + " and " + tv);&nbsp;}在这里运行。如果你真的想自己实现这个......public static int Compare(Version x, Version y){&nbsp; &nbsp; int result = x.Major.CompareTo(y.Major);&nbsp; &nbsp; if (result != 0)&nbsp; &nbsp; &nbsp; &nbsp; return result;&nbsp; &nbsp; result = x.Minor.CompareTo(y.Minor);&nbsp; &nbsp; if (result != 0)&nbsp; &nbsp; &nbsp; &nbsp; return result;&nbsp; &nbsp; result = x.Build.CompareTo(y.Build);&nbsp; &nbsp; if (result != 0)&nbsp; &nbsp; &nbsp; &nbsp; return result;&nbsp; &nbsp; result = x.Revision.CompareTo(y.Revision);&nbsp; &nbsp; return result;}然后if (Compare(c1, sv) >= 0 && Compare(c1, tv) <= 0) ...
打开App,查看更多内容
随时随地看视频慕课网APP