Extensions.InDocumentOrder<T>(IEnumerable<T>) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, clasificados por documento.
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)
Parámetros de tipo
- T
Tipo de los objetos de source
, restringido a XNode.
Parámetros
- source
- IEnumerable<T>
Interfaz IEnumerable<T> de XNode que contiene la colección de origen.
Devoluciones
Interfaz IEnumerable<T> de XNode que contiene todos los nodos de la colección de origen, clasificados por documento.
Ejemplos
En el ejemplo siguiente se crea una colección de nodos que no están en orden de documento y, a continuación, se usa este eje para crear una nueva colección donde los nodos están en orden de documento.
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
Este ejemplo produce el siguiente resultado:
<aaa>1</aaa>
<ccc>3</ccc>
<ddd>5</ddd>
Comentarios
Este método de eje usa la ejecución diferida. Sin embargo, primero enumera su colección de origen, ordena los nodos en orden de documento y, a continuación, genera los resultados.