public bool IsIdentical(TPageCollection otherPages) { if (otherPages == null || this.Count != otherPages.Count) { return(false); } foreach (TPage PageItem in this) { if (!PageItem.IsIdentical(otherPages.Find(p => p.Name == PageItem.Name))) { return(false); } } return(true); }