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



我有一个对象列表A。每个 A 都包含一个 B 列表。每个 B 都包含一个 C 列表。我想知道是否可以在另一个类似对象 D 列表中使用 linq 以优雅的方式转换它,每个对象都包含一个 E 列表,每个对象都包含一个 F 列表。为了示例,假设每个类只有一个数字 ID 和一个字符串 Description(当然,在 A、B、D、E 的情况下,还有一个子项列表)。

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

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()

相关内容

  • 没有找到相关文章