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

Definicja

Zwraca kolekcję węzłów zawierającą wszystkie węzły w kolekcji źródłowej posortowane w kolejności dokumentu.

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)

Parametry typu

T

Typ obiektów w elemecie source, ograniczony do XNode.

Parametry

source
IEnumerable<T>

Element IEnumerable<T> zawierający XNode kolekcję źródłową.

Zwraca

IEnumerable<T>

XNode Element IEnumerable<T> zawierający wszystkie węzły w kolekcji źródłowej posortowane w kolejności dokumentu.

Przykłady

Poniższy przykład tworzy kolekcję węzłów, które nie są w kolejności dokumentu, a następnie używa tej osi do utworzenia nowej kolekcji, w której węzły znajdują się w kolejności dokumentów.

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  

Ten przykład generuje następujące wyniki:

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

Uwagi

Ta metoda osi używa odroczonego wykonywania. Jednak najpierw wylicza swoją kolekcję źródłową, sortuje węzły w kolejności dokumentu, a następnie zwraca wyniki.

Dotyczy

Zobacz też