我正在寻找一种Linq到Xdoc查询,以按XML节点的子集进行分组。 我只能够让其返回数据子集,但我需要整个xml文档传回,并仅对特定节点进行分组。
<Root>
<Elementname1>
</Elementname1>
<Elementname2>
</Elementname2>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
</Root>
以下是代码:
var result =
from row in xDoc.Descendants("Elementname3")
group row by (string)row.Attribute("attrname") into g
select g.First();
返回:
<Elementname3 attrname="test1">
<Child></Child>
</Elementname3>
期望:
<Root>
<Elementname1>
</Elementname1>
<Elementname2>
</Elementname2>
<Elementname3 attrname="test1">
<Child>
</Child>
</Elementname3>
</Root>
我理解后代元素从elementname3开始; 只是不确定如何扩展linq查询以从根节点开始并按预期分组。