c# - 将父母名单与子女名单合并
问题描述
有没有办法使用 Linq 将父对象列表与子对象列表结合起来,以便父列表包含具有相同 ID 的子对象?
我有一个没有孩子的父母列表和一个单独的孩子列表,并希望将它们组合起来,以便父母列表中的孩子包含在适当的父母中。
public class Parent
{
public int Id { get; set; }
public virtual List<Children> Children { get; set; }
}
public class Children
{
public int Id { get; set; }
public int ParentId { get; set; }
}
解决方案
如果我理解正确,您有两个列表,如下所示:
List<Parent> parents;
List<Children> children;
然后,您可以将父级与子级连接起来,以创建附加了子级的新 Parent 对象:
var newParents = parents.GroupJoin(
children,
parent => parent.Id,
child => child.ParentId,
(parent, children) => new Parent { Id = parent.Id, Children = children.ToList() });
推荐阅读
- django - 寻找 Django 模板继承链?
- java - 如何用 Java 编写一个有效的 JSON 文件?
- javascript - 如何在 Promise.all 中获取 fetches 以等待另一个有条件的 fetch 语句的结果
- multithreading - 使用 Spring Batch 多线程 Step 和 RepositoryItemWriter/ RepositoryItemReader 处理大数据
- r - 如何将长度不等的向量列表转换为数据框
- javascript - 反应原生弧滑块
- javascript - 控制自定义指标在 AWS Cloudwatch 中的存储时间
- python - 如何堆叠某些列并一直复制其他列以填充空行?
- ios - ios13 设备中的 Cordova 应用程序在单击或滑动操作时表现异常
- python-3.x - 使用 PYQT5 python 在标签内显示 HOG 特征