我想排序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。
我不明白是什么导致异常,以及如何解决它。