public Boolean ListIdentical(IncludeDirectoryList other) { using (IEnumerator <IncludeDirectory> enumeratorThis = this.GetEnumerator()) { using (IEnumerator <IncludeDirectory> enumeratorOther = other.GetEnumerator()) { while (true) { Boolean thisSuccess = enumeratorThis.MoveNext(); Boolean otherSuccess = enumeratorOther.MoveNext(); if (thisSuccess == false && otherSuccess == false) { return(true); } if (thisSuccess == false || otherSuccess == false) { return(false); } Debug.Assert(enumeratorThis.Current != null, "enumeratorThis.Current != null"); //if (!ReferenceEquals(enumeratorThis.Current, enumeratorOther.Current)) { if (!enumeratorThis.Current.Equals(enumeratorOther.Current)) { return(false); } } } } }