This topic has not yet been rated - Rate this topic

XNode.DocumentOrderComparer Property

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)
public static XNodeDocumentOrderComparer DocumentOrderComparer { get; }

Property Value

Type: System.Xml.Linq.XNodeDocumentOrderComparer
An XNodeDocumentOrderComparer that can compare the relative position of two nodes.

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.

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.

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)
    Console.WriteLine(el);

This example produces the following output:

<Child1>1</Child1>
<Child3>3</Child3>
<Child5>5</Child5>

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.