/// <summary> /// Determines whether the specified <see cref="System.Object" /> is equal to this instance. /// </summary> /// <param name="obj"> /// The <see cref="System.Object" /> to compare with this instance. /// </param> /// <returns> /// <c>true</c> if the specified <see cref="System.Object" /> is equal to this instance; otherwise, <c>false</c>. /// </returns> public override bool Equals(object obj) { var periodList = obj as IPeriodList; if (periodList != null) { IPeriodList r = periodList; IEnumerator <IPeriod> p1Enum = GetEnumerator( ); IEnumerator <IPeriod> p2Enum = r.GetEnumerator( ); while (p1Enum.MoveNext( )) { if (!p2Enum.MoveNext( )) { return(false); } if (!Equals(p1Enum.Current, p2Enum.Current)) { return(false); } } if (p2Enum.MoveNext( )) { return(false); } return(true); } // ReSharper disable BaseObjectEqualsIsObjectEquals return(base.Equals(obj)); // ReSharper restore BaseObjectEqualsIsObjectEquals }
public override bool Equals(object obj) { if (obj is IPeriodList) { IPeriodList r = (IPeriodList)obj; IEnumerator <IPeriod> p1Enum = GetEnumerator(); IEnumerator <IPeriod> p2Enum = r.GetEnumerator(); while (p1Enum.MoveNext()) { if (!p2Enum.MoveNext()) { return(false); } if (!object.Equals(p1Enum.Current, p2Enum.Current)) { return(false); } } if (p2Enum.MoveNext()) { return(false); } return(true); } return(base.Equals(obj)); }