gpt4 book ai didi

c# - 如何使用 Linq 合并两个 XElements 列表?

转载 作者:行者123 更新时间:2023-11-30 21:56:13 25 4
gpt4 key购买 nike

我正在尝试像这样合并两个 XElements 列表:

列表 1:

<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" />

list 2:

<Element name="foo" attr="fooAtr" />
<Element name="bar" attr="barAtr" />
<Element name="zoo" attr="barAtr" />

结果应该是这样的:

<Element name="foo" attr="fooAtr">
<ChildElement name="childFoo">
<SubChildElement name="subChildFoo" />
</ChildElement>
</Element>
<Element name="bar" attr="barAtr">
<ChildElement name="childBar">
<SubChildElement name="subChildBar" />
</ChildElement>
</Element>
<Element name="zoo" attr="barAtr" />

我尝试使用 .Concat() 方法,但它只是将它们加在一起:

var merged_list = list1.Concat(list2);

我想将具有相同名称属性的元素合并为一个。我如何使用 linq 执行此操作?

最佳答案

也许加入会做到这一点:

var res = from e2 in list2
join e1 in list1 on e2.name equals e1.name into joined
from j in joined.DefaultIfEmpty()
select new Element
{
name = j.name,
attr = j.attr,
ChildElement = j.ChildElement
};

关于c# - 如何使用 Linq 合并两个 XElements 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31673465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com