有条件地加入2个列表的子列表

时间:2018-10-05 17:37:50

标签: c# linq

在下面的结构中,我有2个对象列表,每个对象列表包含一个子对象列表和一个要加入的ID。

[
 {
    ItemId:1,
    JoinId: null,
    ChildList: { parent items }
 }
]

其中一个列表纯粹包含不带有JoinId的项目,另一个列表包含同样位于第一个项目中且具有不同子列表的项目,以及一个“ JoinId”将其链接回第一个项目。此连接ID纯粹用于连接两个列表。

我的问题是,如何结合这些列表以从2个列表中的任何一个返回所有唯一项,并使其子列表基于“ JoinId”属性结合在一起。有谁能对此有所了解?

输入/输出的示例是:

输入:

List1
[
 {
    ItemId:1,
    JoinId: null,
    ChildList: [{ Item1 items }]
 },
 {
    ItemId:2,
    JoinId: null,
    ChildList: [{ Item2 items }]
 }
]

List2
[
 {
    ItemId:3,
    JoinId: 1,
    ChildList: [{ Item1 items }]
 },
 {
    ItemId:2,
    JoinId: 1,
    ChildList: [{ Item1 items }]
 }
]

输出

[
 {
    ItemId:1,
    JoinId: null,
    ChildList: [{ Item1 items }]
 },
 {
    ItemId:2,
    JoinId: null,
    ChildList: [
                { Item2 items }, 
                { Item1 items }
               ]
 },    
 {
    ItemId:3,
    JoinId: 1,
    ChildList: [{ Item1 items }]
 }
]

0 个答案:

没有答案