public virtual Boolean Equals(INode otherNode) { if (BaseUri.Is(otherNode.BaseUri) && NodeName.Is(otherNode.NodeName) && ChildNodes.Length == otherNode.ChildNodes.Length) { for (var i = 0; i < _children.Length; i++) { if (!_children[i].Equals(otherNode.ChildNodes[i])) { return(false); } } return(true); } return(false); }