public static bool TryParse(string value, out SemanticVersion version) { if (!string.IsNullOrEmpty(value)) { var match = SemanticVersionStrictRegex.Match(value.Trim()); Version versionValue; if (match.Success && Version.TryParse(match.Groups["Version"].Value, out versionValue)) { var normalizedVersion = NormalizeVersionValue(versionValue); version = new SemanticVersion(normalizedVersion); return true; } } version = null; return false; }
public static int Compare(SemanticVersion x, SemanticVersion y) { if (ReferenceEquals(x, null) && ReferenceEquals(y, null)) return 0; if (ReferenceEquals(y, null)) return 1; if (ReferenceEquals(x, null)) return -1; var result = x.Major.CompareTo(y.Major); if (result != 0) return result; result = x.Minor.CompareTo(y.Minor); if (result != 0) return result; result = x.Patch.CompareTo(y.Patch); return result; }