您如何比较两个版本号?
我不想要简单的1.0.0.0,但我正在寻找比较它们的方法
1.0.0.1
1.0.0.1rc1 / 1.0.0.1-rc1
1.0.0.1b
1.0.0.1a / 1.0.0.1-a
等等
他们按照最新的方向订购。
从PHP.net引用他们想要的功能
version_compare()比较两个“ PHP标准化”版本号字符串。
该函数首先用点替换_,-和+。在版本字符串中并插入点。在任何非数字之前和之后,例如“ 4.3.2RC1”变为“ 4.3.2.RC.1”。然后,它会比较从左到右的部分。如果零件包含特殊版本的字符串,则按以下顺序处理:在此列表中找不到的任何字符串
如何才能做到这一点?
还是默认有这样的东西?
最佳答案
使用semantic version library for .Net
要安装软件包:
Install-Package semver
您可以解析/比较版本。
示例1:比较
var v1 = new SemVersion(1, 0, 0, "rc1");
Console.WriteLine(v1);
var v2 = new SemVersion(1, 0, 0, "rc2");
Console.WriteLine(v2);
var r = SemVersion.Compare(v1,v2);
//If v1 < v2 return -1
//if v1 > v2 return +1
//if v1 = v2 return 0
Console.WriteLine(r); // -1
例2:解析
var version = SemVersion.Parse("1.2.45-alpha-beta+nightly.23.43-bla");
Console.WriteLine(version);
Console.WriteLine( version.Major); //1
Console.WriteLine( version.Minor); //2
Console.WriteLine( version.Patch); //45
Console.WriteLine(version.Prerelease); //alpha-beta
Console.WriteLine(version.Build); //nightly.23.43
更新:
fiddle中的生活演示