响应更新问题
更新答案:
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