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

Définition

Retourne une collection de nœuds qui contient tous les nœuds de la collection source, triées dans l’ordre des documents.

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)

Paramètres de type

T

Type des objets dans source, limité à XNode.

Paramètres

source
IEnumerable<T>

Qui IEnumerable<T>XNode contient la collection source.

Retours

IEnumerable<T> Ceci XNode contient tous les nœuds de la collection source, triés dans l’ordre du document.

Exemples

L’exemple suivant crée une collection de nœuds qui ne sont pas dans l’ordre du document, puis utilise cet axe pour créer une collection où les nœuds sont dans l’ordre du document.

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

Cet exemple produit la sortie suivante :

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

Remarques

Cette méthode d’axe utilise l’exécution différée. Toutefois, il énumère d’abord sa collection source, trie les nœuds dans l’ordre des documents, puis génère les résultats.

S’applique à

Voir aussi