響應更新問題
更新答案:
public static bool Validation(Version installedVersion, string allowedVersions)
{
var components = new [] {int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue};
var split = allowedVersions.Split('.');
for (int i = 0; i < split.Length; ++i)
if (split[i] != "*")
components[i] = int.Parse(split[i]);
return installedVersion <= new Version(components[0], components[1], components[2], components[3]);
}
樣品測試代碼:
Console.WriteLine(Validation(new Version("1.5.2.1"), "1.*")); // True
Console.WriteLine(Validation(new Version("1.5.2.1"), "1.5.*")); // True
Console.WriteLine(Validation(new Version("1.5.2.1"), "1.5.1.*")); // False
Console.WriteLine(Validation(new Version("2.5.0.0"), "1.*")); // False
Console.WriteLine(Validation(new Version("1.1.0.0"), "2.*")); // True
Console.WriteLine(Validation(new Version("2.5.0.0"), "*")); // True
[編輯:簡化代碼s輕輕]
你可以解釋你的規則,並顯示你已經嘗試?! –
我想構建一個許可證檢查。在我的許可證文件中,我包含一個版本字符串,表示我的許可證對版本x有效,包括破壞版。標準版本.CompareTo(版本2)不支持通配符,它只是說版本2等於,高於或低於版本2。 – Philip