コード例 #1
0
        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);
        }
コード例 #2
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);
        }