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;
}
}