Extensions.InDocumentOrder(IEnumerable<T>) Extensions.InDocumentOrder(IEnumerable<T>) Extensions.InDocumentOrder(IEnumerable<T>) Extensions.InDocumentOrder(IEnumerable<T>) Method

Definição

Retorna uma coleção de nós que contém todos os nós na coleção de origem, classificados em ordem segundo o documento.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

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

O tipo dos objetos em source, restritos para XNode.The type of the objects in source, constrained to XNode.

Parâmetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Um IEnumerable<T> do XNode que contém a coleção de origem.An IEnumerable<T> of XNode that contains the source collection.

Retornos

Um IEnumerable<T> de XNode que contém todos os nós na coleção de origem, classificados em ordem segundo o documento.An IEnumerable<T> of XNode that contains all nodes in the source collection, sorted in document order.

Exemplos

O exemplo a seguir cria uma coleção de nós que não estão na ordem do documento e, em seguida, usa esse eixo para criar uma nova coleção em que os nós estão na ordem do documento.The following example creates a collection of nodes that are not in document order, and then uses this axis to create a new collection where the nodes are in document order.

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 exemplo gera a seguinte saída:This example produces the following output:

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

Comentários

Esse método de eixo usa a execução adiada.This axis method uses deferred execution. No entanto, ele primeiro enumera sua coleção de origem, o classifica os nós na ordem do documento e, em seguida, gera os resultados.However, it first enumerates its source collection, the sorts the nodes in document order, and then yields the results.

Aplica-se a

Veja também