internal static int CompareListContents(SortedListAllowDupes <T> a, SortedListAllowDupes <T> b) { var enumA = a.GetEnumerator(); var enumB = b.GetEnumerator(); var aHasNext = enumA.MoveNext(); var bHasNext = enumB.MoveNext(); while (aHasNext && bHasNext) { var compVal = a._comparer.Compare(enumA.Current, enumB.Current); if (compVal != 0) { return(compVal); } aHasNext = enumA.MoveNext(); bHasNext = enumB.MoveNext(); } if (aHasNext && !bHasNext) { return(1); } else if (!aHasNext && bHasNext) { return(-1); } // they are equals return(0); }
public override bool Equals(object obj) { if (null == obj) { return(false); } var objAsAssocEndIdentity = obj as AssociationEndIdentity; if (null == objAsAssocEndIdentity) { return(false); } if (ColumnCount != objAsAssocEndIdentity.ColumnCount) { return(false); } if (ColumnCount == 0) { return(true); } var thisPMI = _propertyIdentities.GetEnumerator(); var thatPMI = objAsAssocEndIdentity._propertyIdentities.GetEnumerator(); while (thisPMI.MoveNext() && thatPMI.MoveNext()) { if (thisPMI.Current.Equals(thatPMI.Current) == false) { return(false); } } return(true); }