我有一个对象列表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()