Extensions.InDocumentOrder<T>(IEnumerable<T>) Método

Definición

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, ordenados en orden de documento.

public:
generic <typename T>
 where T : System::Xml::Linq::XNode[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<T> ^ InDocumentOrder(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Collections.Generic.IEnumerable<T> InDocumentOrder<T>(this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XNode;
static member InDocumentOrder : seq<'T (requires 'T :> System.Xml.Linq.XNode)> -> seq<'T (requires 'T :> System.Xml.Linq.XNode)> (requires 'T :> System.Xml.Linq.XNode)
<Extension()>
Public Function InDocumentOrder(Of T As XNode) (source As IEnumerable(Of T)) As IEnumerable(Of T)

Parámetros de tipo

T

Tipo de los objetos de source, restringido a XNode.

Parámetros

source
IEnumerable<T>

IEnumerable<T> de XNode que contiene la colección de origen.

Devoluciones

IEnumerable<T> de XNode que contiene todos los nodos de la colección de origen, ordenados en orden de documento.

Ejemplos

En el ejemplo siguiente se crea una colección de nodos que no están en orden de documento y, a continuación, se usa este eje para crear una nueva colección en la que los nodos están en orden de documento.

XElement xmlTree = new XElement("Root",
    new XElement("Item",
        new XElement("aaa", 1),
        new XElement("bbb", 2)
    ),
    new XElement("Item",
        new XElement("ccc", 3),
        new XElement("aaa", 4)
    ),
    new XElement("Item",
        new XElement("ddd", 5),
        new XElement("eee", 6)
    )
);

XElement[] elementList = {
    xmlTree.Descendants("ddd").First(),
    xmlTree.Descendants("ccc").First(),
    xmlTree.Descendants("aaa").First()
};

IEnumerable<XElement> inDocOrder = elementList.InDocumentOrder();

foreach (XElement el in inDocOrder)
    Console.WriteLine(el);
Dim xmlTree As XElement = _
    <Root>
        <Item>
            <aaa>1</aaa>
            <bbb>2</bbb>
        </Item>

        <Item>
            <ccc>3</ccc>
            <aaa>4</aaa>
        </Item>

        <Item>
            <ddd>5</ddd>
            <eee>6</eee>
        </Item>
    </Root>

Dim elementList() As XElement = _
    { _
        xmlTree...<ddd>(0), _
        xmlTree...<ccc>(0), _
        xmlTree...<aaa>(0) _
    }

Dim inDocOrder = elementList.InDocumentOrder

For Each el As XElement In inDocOrder
    Console.WriteLine(el)
Next

Este ejemplo produce el siguiente resultado:

<aaa>1</aaa>
<ccc>3</ccc>
<ddd>5</ddd>

Comentarios

Este método de eje usa la ejecución diferida. Sin embargo, primero enumera su colección de origen, ordena los nodos en orden de documento y, a continuación, produce los resultados.

Se aplica a

Consulte también