我当时看着this answer,想知道现在是否可以有一种更简洁的方法来组合GroupJoin的两个方面,即将右边的Children
集合直接附加到{{1 }}。
作者建议,
Parent
但是我们不能消除上面的var parentChildrenQry =
parents.GroupJoin(children, parent.Id, child.ParentId, new { (parent, childGrp) => new { Parent = parent, Children = childGrp.ToList() } );
foreach(var grp in parentChildrenQry) {
grp.Parent.Children = grp.Children;
}
步骤,而只将它们组合到resultSelector中吗?
我想也可以在resultSelector中重新创建新对象,即
foreach
但这对于较大的对象可能会相当长。我以为var myCompleteObjects =
parents.GroupJoin(children, parent.Id, child.ParentId,
(parent, childGrp) => new CompleteObject
{ Id = parent.Id,
Name = parent.Name,
Children = childGrp.ToList()
}).ToList();
或Select
可能会有帮助,但我似乎找不到找到实现此目标的示例。