我想排序XElement的孩子使用Linq,然後用排序替換現有的孩子。如何將ISortedEnumerable <XElement>添加到XElement?
首先我創建的XElement:
XElement WithLinq =
new XElement("Names",
from cust in Customers.AsEnumerable()
select
new XElement("Customer",
new XAttribute("ID", cust.ID),
new XElement("Name", cust.Name),
new XElement("Purchases",
from pur in cust.Purchases
select
new XElement("Purchase",
new XElement("Produkt",pur.Description),
new XAttribute("ID",pur.ID),
new XElement("Price",pur.Price),
new XComment("teraz daty"),
new XElement("Date",pur.Date), //Formatuje DateTime zgodnie z normami XMLa
new XElement("DataAleNieDoKonca",pur.Date.ToString(CultureInfo.InvariantCulture)))))
);
接着我節點:
var NowaKolejnosc = WithLinq.Elements().Last().Elements().OrderBy(n => n.Name).ThenBy(n => n.Value);
並進行更換:
WithLinq.Elements().Last().ReplaceNodes(NowaKolejnosc);
但我得到一個運行時異常:ArgumentException的:「合作najmniej jeden obiekt musiimplementsowaćelement IComparable。'翻譯:至少有一個對象必須實現IComparable。
我不明白是什麼導致異常,以及如何解決它。