XNode.DocumentOrderComparer Property
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Gets a comparer that can compare the relative position of two nodes.
Namespace: System.Xml.Linq
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
Syntax
'Declaration
Public Shared ReadOnly Property DocumentOrderComparer As XNodeDocumentOrderComparer
public static XNodeDocumentOrderComparer DocumentOrderComparer { get; }
Property Value
Type: System.Xml.Linq.XNodeDocumentOrderComparer
A XNodeDocumentOrderComparer that can compare the relative position of two nodes.
Remarks
This property is primarily used internally for implementing the InDocumentOrder<T> extension method. The recommended approach is to use that extension method instead of using this property directly.
Examples
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.
Dim output As New StringBuilder
Dim xmlTree As XElement = _
<Root>
<Child1>1</Child1>
<Child2>2</Child2>
<Child3>3</Child3>
<Child4>4</Child4>
<Child5>5</Child5>
</Root>
Dim nodeDictionary As Dictionary(Of XNode, String) = New Dictionary(Of 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")
Dim str As String = nodeDictionary(xmlTree.Element("Child3"))
output.Append(str)
output.Append(Environment.NewLine)
OutputTextBlock.Text = output.ToString()
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)
);
List<XNode> nodeList = new List<XNode>();
nodeList.Add(xmlTree.Element("Child5"));
nodeList.Add(xmlTree.Element("Child3"));
nodeList.Add(xmlTree.Element("Child1"));
// Sort nodes in document order.
nodeList.Sort(XNode.DocumentOrderComparer);
foreach (XElement el in nodeList)
output.Append(el + Environment.NewLine);
OutputTextBlock.Text = output.ToString();
Version Information
Silverlight
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also