Прочитать на английском

Поделиться через


Extensions.InDocumentOrder<T>(IEnumerable<T>) Метод

Определение

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.

C#
public static System.Collections.Generic.IEnumerable<T> InDocumentOrder<T>(this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XNode;

Параметры типа

T

Тип объектов в source, ограниченный узлом XNode.

Параметры

source
IEnumerable<T>

Интерфейс IEnumerable<T> узла XNode, содержащий исходную коллекцию.

Возвращаемое значение

IEnumerable<T> для XNode, содержащий все узлы в исходной коллекции, отсортированные в порядке следования документов.

Примеры

В следующем примере создается коллекция узлов, которые не находятся в порядке документа, а затем эта ось используется для создания новой коллекции, в которой узлы находятся в порядке документа.

C#
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);  

В этом примере выводятся следующие данные:

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

Комментарии

Этот метод оси использует отложенное выполнение. Однако сначала он перечисляет свою исходную коллекцию, сортирует узлы в порядке документа, а затем возвращает результаты.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел