2012-01-31 61 views
1

我目前正在與該XML的工作(這是一個小的子集)分組:的LINQ to XML與和

<?xml version="1.0" encoding="UTF-8"?> 
<orders> 
    <order> 
     <customer><![CDATA[1035]]></customer> 
     <total><![CDATA[10]]></total> 
    </order> 
    <order> 
     <customer><![CDATA[1036]]></customer> 
     <total><![CDATA[5.6]]></total> 
    </order> 
    <order> 
     <customer><![CDATA[1035]]></customer> 
     <total><![CDATA[5.6]]></total> 
    </order> 
</orders> 

我試圖找出是否有一種方法來組這個由客戶和求和總。

當我通過分組循環我會:

customer 1035 with a total of 15.6 
customer 1036 with a total of 5.6 

回答

2

我先變換,然後組/總和:

var query = from element in doc.Descendants("order") 
      select new { Customer = (int) element.Element("customer"), 
         Total = (decimal) element.Element("total") } 
      into order 
      group order.Total by order.Customer into g 
      select new { Customer = g.Key, Total = g.Sum() }; 

foreach (var result in query) 
{ 
    Console.WriteLine("customer {0} with a total of {1}", 
         result.Customer, result.Total); 
} 

(你可以做到這一切的點標記爲好,當然。)