Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对XML节点重新排序_C#_Linq To Xml - Fatal编程技术网

C# 对XML节点重新排序

C# 对XML节点重新排序,c#,linq-to-xml,C#,Linq To Xml,我有一些XML,看起来像这样: 香蕉 苹果 樱桃 这不是我掌握的实际数据,但在这里它会起作用。我想做的是使用LINQtoSQL对XML重新排序,以便子节点按字母顺序排列,例如 苹果 香蕉 樱桃 我希望能够在原始XDocument上调用ToString(),并让它返回第二组XML,如上图所示。有没有一个简单的方法可以做到这一点?我试过搜索,但没有这样的运气。也许: var reordered = new XElement( "root",

我有一些XML,看起来像这样:


香蕉
苹果
樱桃
这不是我掌握的实际数据,但在这里它会起作用。我想做的是使用LINQtoSQL对XML重新排序,以便子节点按字母顺序排列,例如


苹果
香蕉
樱桃
我希望能够在原始XDocument上调用
ToString()
,并让它返回第二组XML,如上图所示。有没有一个简单的方法可以做到这一点?我试过搜索,但没有这样的运气。

也许:

var reordered = new XElement(
                    "root",
                    xdoc.Root.Elements("item")
                             .OrderBy(x => x.Value)
                             .Select(x => new XElement("item", x.Value)));
或者更灵活一些(尽管只支持1个嵌套级别):


@迪伦:不客气。XLinq的优点在于各种对象的构造函数的可扩展性。我建议通过阅读了解更多。谢谢链接。对我来说,问题是我从错误的角度思考它;我试图更改现有的XML,而不是考虑创建新的XML来替换它。
var reordered = new XElement(
                    xdoc.Root.Name,
                    xdoc.Root.Elements()
                             .OrderBy(x => x.Value)
                             .Select(x => new XElement(x.Name, x.Value)));