示例#1
0
        // left more recent: 1
        // identicals: 0
        // right more recent: -1
        public static int CompareVersion(VersionData left, VersionData right)
        {
            if (left.IsValidSemver != right.IsValidSemver)
            {
                return(left.IsValidSemver ? 1 : -1);
            }

            int compareLength = left.Length > right.Length ? left.Length : right.Length;

            for (int i = 0; i < compareLength; ++i)
            {
                int leftNumber  = left.GetIndex(i);
                int rightNumber = right.GetIndex(i);

                if (leftNumber > rightNumber)
                {
                    return(1);
                }
                if (leftNumber < rightNumber)
                {
                    return(-1);
                }
            }

            return(0);
        }