1

xml でノードを並べ替える必要があります。アルファベット順に並べ替える次のコードがあります。ただし、文字列は許可されていますが、データの多くは数値です。IComparer をセットアップして、データを他の場所に表示したいときに正しく並べ替えます。

System.Xml.Linq.XDocument output = new System.Xml.Linq.XDocument(
                    new System.Xml.Linq.XElement("xml",
                from node in input.Root.Elements("training")
                orderby node.Attribute("order").Value
                select node));

メソッド呼び出しで IComparer を使用する方法を見つけましたが、.OrderBy(x => x, new CustomComparer()) それを xml で動作させる方法がわかりませんでした。私がオンラインで読んだことから、クエリ構文から IComparer を呼び出せるようには見えません。

4

1 に答える 1

4

orderbyそうです、クエリ式句からそのオーバーロードを使用することはできません。幸いなことに、クエリは非常に単純なので、次を使用できます。

// Have a using directive for System.Xml.Linq - it'll make everything simpler!
XDocument output = new XDocument(
    new XElement("xml",
        input.Root
             .Elements("training")
             .OrderBy(node => node.Attribute("order)".Value, comparer)));
于 2012-06-29T22:03:31.837 に答える