public override int Compare(ComparePart other) { if (other == null) { throw new ArgumentNullException(paramName: "other"); } StringComparePart scp = other as StringComparePart; if (scp == null) { return(Part.CompareTo(((IntComparePart)other).Part.ToString())); } else { return(Part.CompareTo(scp.Part)); } }
public override int Compare(ComparePart other) { if (other == null) { throw new ArgumentNullException(paramName: "other"); } IntComparePart icp = other as IntComparePart; if (icp == null) { return(String.Compare(this.Part, ((StringComparePart)other).Part, StringComparison.Ordinal)); } else { var otherPart = icp.Part; if (Part.Length > otherPart.Length) { return(1); } if (otherPart.Length > Part.Length) { return(-1); } var arr = Part.ToArray(); var arr2 = otherPart.ToArray(); for (int i = 0; i < arr.Length; i++) { int x = int.Parse(arr[i].ToString()); int y = int.Parse(arr2[i].ToString()); if (x < y) { return(-1); } if (y < x) { return(1); } } return(0); } }
public abstract int Compare(ComparePart other);