c# - 将展平表的 Linq 投影到父子对象图中

标签 c# linq

我有一个包含扁平化父子关系的可枚举列表:

ParentGuid1, ParentName1, ChildGuid1, ChildName1
ParentGuid1, ParentName1, ChildGuid2, ChildName2
ParentGuid2, ParentName2, ChildGuid3, ChildName3
ParentGuid2, ParentName2, ChildGuid4, ChildName4

我定义了一个子类和一个包含 List<Child> 的父类名为 Children 的属性。

我可以使用 linq 在对象图上创建每个唯一 ParentGuid 的父类的一个实例,引用由与该父项关联的子项填充的列表吗?

类似这样的内容(注意,这段代码无法编译):

myFlattenedHierarchy.Select(p => new Parent
   {Guid = p.ParentGuid, 
    Name = p.ParentName, 
    Children = myFlattenedHierarchy.Where(c => c.ParentGuid == p.ParentGuid).Select(c => new Child{Guid = c.ChildGuid, Name = c.ChildName})
   });

最佳答案

myFlattenedHierarchy.Select(p => new Parent
   {Guid = p.ParentGuid, 
    Name = p.ParentName, 
    Children = myFlattenedHierarchy.Where(c => c.ParentGuid == p.ParentGuid).Select(c => new Child{Guid = c.ChildGuid, Name = c.ChildName})
   });

你应该可以这样做,但是 Children 不能是一个列表,它必须是 IEnumerable

关于c# - 将展平表的 Linq 投影到父子对象图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7598291/

相关文章:

c# - 删除单个 RadGrid 列的过滤器

asp.net - Lambda 表达式比 foreach 语句慢?

c# - 根据键对字典列表进行排序

c# - 使用 Linq 同时查询两个集合

vb.net - 实体 SQLCE 在 app.config 文件中找不到连接字符串

c# - 使用反射从类列表的属性中获取值

c# - Rijndael 算法(如何创建我们自己的 key )

c# - CIL类和方法的命名规则是什么

c# - 如何用 NewtonSoft 的 Json Serializer 替换 OData V4 默认的 Json Serializer?

javascript - vb 中的 Javascript .map 等价物是什么?