XNodeEqualityComparer.IEqualityComparer.Equals(Object, Object) Method


Compares the values of two nodes.

 virtual bool System.Collections.IEqualityComparer.Equals(System::Object ^ x, System::Object ^ y) = System::Collections::IEqualityComparer::Equals;
bool IEqualityComparer.Equals (object x, object y);
abstract member System.Collections.IEqualityComparer.Equals : obj * obj -> bool
override this.System.Collections.IEqualityComparer.Equals : obj * obj -> bool
Function Equals (x As Object, y As Object) As Boolean Implements IEqualityComparer.Equals



The first XNode to compare.


The second XNode to compare.



true if the nodes are equal; otherwise false.



The following criteria determine whether two nodes are equal:

  • A null node is equal to another null node but unequal to a non-null node.

  • Two XNode objects of different types are never equal.

  • Two XText nodes are equal if they contain the same text.

  • Two XElement nodes are equal if they have the same tag name, the same set of attributes with the same values, and (ignoring comments and processing instructions), contain two equa-length sequences of pairwise equal content nodes.

  • Two XDocument objects are equal if their root nodes are equal.

  • Two XComment nodes are equal if they contain the same comment text.

  • Two XProcessingInstruction nodes are equal if they have the same target and data.

  • Two XDocumentType nodes are equal if the have the same name, public ID, system ID, and internal subset.

Applies to