Extensions.InDocumentOrder<T>(IEnumerable<T>) Yöntem

Tanım

Belge düzeninde sıralanan, kaynak koleksiyondaki tüm düğümleri içeren düğümlerin bir koleksiyonunu döndürür.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)

Tür Parametreleri

T

Uygulamasındaki nesnelerinin türü source , ile sınırlıdır XNode .The type of the objects in source, constrained to XNode.

Parametreler

source
IEnumerable<T>

IEnumerable<T> XNode Kaynak koleksiyonu içeren bir.An IEnumerable<T> of XNode that contains the source collection.

Döndürülenler

IEnumerable<T>

IEnumerable<T> XNode Kaynak koleksiyondaki tüm düğümleri içerir ve belge sırasıyla sıralanır.An IEnumerable<T> of XNode that contains all nodes in the source collection, sorted in document order.

Örnekler

Aşağıdaki örnek, belge düzeninde olmayan düğümlerin bir koleksiyonunu oluşturur ve sonra düğümlerin belge düzeninde olduğu yeni bir koleksiyon oluşturmak için bu ekseni kullanır.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  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

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

Açıklamalar

Bu eksen yöntemi ertelenmiş yürütmeyi kullanır.This axis method uses deferred execution. Ancak, önce kaynak koleksiyonunu numaralandırır, düğümleri belge sırasıyla sıralar ve sonra sonuçları verir.However, it first enumerates its source collection, the sorts the nodes in document order, and then yields the results.

Şunlara uygulanır

Ayrıca bkz.