public bool Equals(IXmlNode nodeA, IXmlNode nodeB) { var comparer = XmlNameComparer.Default; var a = new ComparandIterator { Node = nodeA }; var b = new ComparandIterator { Node = nodeB }; for (;;) { if (a.Node.IsReal && b.Node.IsReal) { return(a.Node.UnderlyingPositionEquals(b.Node)); } if (!a.MoveNext() || !b.MoveNext()) { return(false); } if (!comparer.Equals(a.Name, b.Name)) { return(false); } } }
public bool Equals(IXmlNode nodeA, IXmlNode nodeB) { var comparer = XmlNameComparer.Default; var a = new ComparandIterator { Node = nodeA }; var b = new ComparandIterator { Node = nodeB }; for (;;) { if (a.Node.IsReal && b.Node.IsReal) return a.Node.UnderlyingPositionEquals(b.Node); if (!a.MoveNext() || !b.MoveNext()) return false; if (!comparer.Equals(a.Name, b.Name)) return false; } }