Поделиться через


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.