Cómo ordenar elementos

Este ejemplo muestra cómo escribir una consulta que ordene sus resultados.

Ejemplo

Este ejemplo utiliza el siguiente documento XML: Archivo XML de muestra: datos numéricos (LINQ to XML).

XElement root = XElement.Load("Data.xml");
IEnumerable<decimal> prices =
    from el in root.Elements("Data")
    let price = (decimal)el.Element("Price")
    orderby price
    select price;
foreach (decimal el in prices)
    Console.WriteLine(el);
Dim root As XElement = XElement.Load("Data.xml")
Dim prices As IEnumerable(Of Decimal) = _
    From el In root.<Data> _
    Let price = Convert.ToDecimal(el.<Price>.Value) _
    Order By (price) _
    Select price
For Each el As Decimal In prices
    Console.WriteLine(el)
Next

Este código genera el siguiente resultado:

0.99
4.95
6.99
24.50
29.00
66.00
89.99

El siguiente ejemplo muestra la misma consulta sobre un XML que se encuentra en un espacio de nombres.Para obtener más información, vea Trabajar con espacios de nombres XML.

Este ejemplo utiliza el siguiente documento XML: Archivo XML de muestra: datos numéricos en un espacio de nombres.

XElement root = XElement.Load("DataInNamespace.xml");
XNamespace aw = "http://www.adatum.com";
IEnumerable<decimal> prices =
    from el in root.Elements(aw + "Data")
    let price = (decimal)el.Element(aw + "Price")
    orderby price
    select price;
foreach (decimal el in prices)
    Console.WriteLine(el);
Imports <xmlns='http://www.adatum.com'>

Module Module1
    Sub Main()
        Dim root As XElement = XElement.Load("DataInNamespace.xml")
        Dim prices As IEnumerable(Of Decimal) = _
            From el In root.<Data> _
            Let price = Convert.ToDecimal(el.<Price>.Value) _
            Order By (price) _
            Select price
        For Each el As Decimal In prices
            Console.WriteLine(el)
        Next
    End Sub
End Module

Este código genera el siguiente resultado:

0.99
4.95
6.99
24.50
29.00
66.00
89.99

Vea también

Conceptos

Ordenar datos

Consultas básicas (LINQ to XML)