私はLinqを使ってXElementの子をソートしようとしていて、既存の子をソート済みのものに置き換えようとしています。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が「コ「IComparable」要素を実装するために使用されます。翻訳:少なくとも1つのオブジェクトがIComparableを実装する必要があります。
例外が発生している原因と解決方法を理解できません。