XNode.EqualityComparer Property

Gets a comparer that can compare two nodes for value equality.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

public static XNodeEqualityComparer EqualityComparer { get; }

Property Value

Type: System.Xml.Linq.XNodeEqualityComparer
A XNodeEqualityComparer that can compare two nodes for value equality.

The following example uses this property to retrieve an XNodeEqualityComparer, which implements the System.Collections.IEqualityComparer and System.Collections.Generic.IEqualityComparer<T> interfaces. It creates a dictionary that uses this property.

The following example creates an XML tree with some elements. It then creates a List<T> of XNode that contains some elements from the XML tree at random. It sorts the list, using this property to retrieve a XNodeDocumentOrderComparer, which implements the System.Collections.IComparer and System.Collections.Generic.IComparer<T> interfaces.

StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)

Dictionary<XNode, string> nodeDictionary = new Dictionary<XNode, string>(XNode.EqualityComparer);
nodeDictionary.Add(xmlTree.Element("Child5"), "Child 5 Information");
nodeDictionary.Add(xmlTree.Element("Child3"), "Child 3 Information");
nodeDictionary.Add(xmlTree.Element("Child1"), "Child 1 Information");

string str = nodeDictionary[xmlTree.Element("Child3")];
output.Append(str + Environment.NewLine);

OutputTextBlock.Text = output.ToString();


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions