Dicom.Data.DicomUID.CompareNumeric C# (CSharp) Method

CompareNumeric() public static method

Compare UIDs for sorting in numeric order
public static CompareNumeric ( DicomUID uid0, DicomUID uid1 ) : int
uid0 DicomUID
uid1 DicomUID
return int
        public static int CompareNumeric(DicomUID uid0, DicomUID uid1)
        {
            try {
                string[] parts0 = uid0.UID.Split('.');
                string[] parts1 = uid1.UID.Split('.');

                int count = Math.Min(parts0.Length, parts1.Length);

                for (int i = 0; i < count; i++) {
                    if (parts0[i] == parts1[i])
                        continue;

                    int i0 = int.Parse(parts0[i], CultureInfo.InvariantCulture);
                    int i1 = int.Parse(parts1[i], CultureInfo.InvariantCulture);

                    if (i0 == i1)
                        return 0;
                    else if (i0 < i1)
                        return -1;
                    else
                        return 1;
                }

                if (parts0.Length == parts1.Length)
                    return 0;
                else if (parts0.Length < parts1.Length)
                    return -1;
                else
                    return 1;
            }
            catch {
                return 0;
            }
        }