C# 比较版本号
/// <summary>
/// 版本比较
/// </summary>
/// <param name="version1">版本1</param>
/// <param name="version2">版本2</param>
/// <returns>返回最新的版本号</returns>
public string VersionCompare(string version1, string version2)
{
if(string.IsNullOrWhiteSpace(version1) || string.IsNullOrWhiteSpace(version2))
{
return string.Empty;
}
string regex = @"[^0-9\.]";
string[] v1 = Regex.Replace(version1, regex, "").Split(".");
string[] v2 = Regex.Replace(version2, regex, "").Split(".");
int num = Math.Max(v1.Length, v2.Length);
int[] versionNum1 = new int[num];
int[] versionNum2 = new int[num];
for (int i = 0; i < num; i++)
{
int.TryParse(v1 .Length > i ? v1[i]:"0", out int num1);
int.TryParse(v2 .Length > i ? v2[i]:"0", out int num2);
versionNum1[i] = num1 >= num2 ? 1 * (num -i) :0;
versionNum2[i] = num1 > num2 ? 0 : 1 * (num - i);
}
if(versionNum1.Sum() > versionNum2.Sum())
{
return version1;
}
return version2;
}