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>

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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另请参阅