我想XElements兩個清單合併爲一個:如何將兩個XElements與linq select結合使用?
var list1 = XElement.Parse(@"<root><Element name=""foo"">
<ChildElement name=""childFoo"">
<SubChildElement name=""subChildFoo"" />
</ChildElement>
</Element>
<Element name=""bar"">
<ChildElement name=""childBar"">
<SubChildElement name=""subChildBar"" />
</ChildElement>
</Element>
<Element name=""zoo"" /></root>").XPathSelectElements("Element").ToList();
var list2 = XElement.Parse(@"<root><Element name=""foo"" attr=""fooAtr"" />
<Element name=""bar"" attr=""barAtr"" />
<Element name=""zoo"" attr=""barAtr"" /></root>").XPathSelectElements("Element").ToList();
var res = from e2 in list2
join e1 in list1
on e2.Attribute("name").Value equals e1.Attribute("name").Value
select new XElement(e1.Add(e2.Element("ChildElement")));
代碼將無法編譯,因爲選擇是錯誤的(XElement.Add()返回void)。
我怎樣才能將二者結合起來XElements:E1和E2內選擇和(與E1的子元素E2)
我想獲得這種格式列表中返回新的XElement:
<Element name="foo" attr="fooAtr">
<ChildElement name="childFoo">
<SubChildElement name="subChildFoo" />
</ChildEelement>
</Element>
<Element name="bar" attr="barAtr">
<ChildElement name="childBar">
<SubChildElement name="subChildBar" />
</ChildEelement>
</Element>
<Element name="zoo" attr="barAtr" />
這正是我所期待的,很好用,因爲我可以將來自e1和e2的屬性分組,並仍然使用構造函數。 – greenfeet