gpt4 book ai didi

c# - 从所有 IEnumerables 中的所有 IEnumerables 获取所有对象

转载 作者:太空宇宙 更新时间:2023-11-03 17:31:36 27 4
gpt4 key购买 nike

在我们一个客户的项目中,我经常需要获取IEnumerable 中所有项目的所有 子项。

这是模型的简化版本:

public class Parent
{
public IEnumerable<Child> Children {get;set;}
}

public class Child
{
}

当我现在想要 List{T} 中所有 Parent 实例的 all 子级时,我现在使用常规 foreach,像这样:

List<Parent> parents = GetAllParents();
var children = new List<Child>();
foreach(var parent in parents)
{
children.AddRange(parent.Children);
}

我想知道这是否可以在一个 Linq 语句中完成?

类似于:

var children = parents.Select(....

最佳答案

使用SelectMany将 parent 序列转换到 child 列表中,并将这些列表展平为单个序列:

var children = parents.SelectMany(p => p.Children);

查询语法看起来像

var children = from p in parents
from c in p.Children
select c;

关于c# - 从所有 IEnumerables 中的所有 IEnumerables 获取所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149874/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com