将父子孙级层次结构转换为另一个p-c-gc层次结构

时间:2014-01-14 09:16:02

标签: vb.net linq list

我有一个对象列表A.每个A包含一个B列表。每个B包含一个C列表。 我想知道是否有可能在另一个类似对象列表中使用linq以优雅的方式转换它,每个列表包含一个E列表,每个列表包含一个F列表。 比如说,为了这个例子,每个类只有一个数字ID和一个字符串描述(当然还有A,B,D,E中的子列表)。

1 个答案:

答案 0 :(得分:0)

假设D,E和F具有接受ID,描述的构造函数,并且在D和E的情况下,分别为IEnumerable的B和C,您可以使用:

Dim list As List(Of A)
Dim listSummary As List(Of D) = list.[Select](
    Function(a) New D(a.Id, a.Description, a.Children.[Select](
                      Function(b) New E(b.Id, b.Description, b.Children.[Select](
                                        Function(c) New F(c.Id, c.Description)))))).ToList()