C# 使用Linq获取列表中的列表

C# 使用Linq获取列表中的列表,c#,linq,C#,Linq,我需要使用linq(lambda)返回列表中的一个列表,但是仍然没有得到所需的语法 我有一个WikiMeta列表,我想查询并返回所有WikiGroups作为一个新列表 注意:某些属性已从清晰度中删除 List<WikiMeta> Meta; public class WikiMeta { public List<WikiGroup> Groups = new List<WikiGroup>(); } public class WikiGroup {

我需要使用linq(lambda)返回列表中的一个列表,但是仍然没有得到所需的语法

我有一个WikiMeta列表,我想查询并返回所有WikiGroups作为一个新列表

注意:某些属性已从清晰度中删除

List<WikiMeta> Meta;

public class WikiMeta
{
    public List<WikiGroup> Groups = new List<WikiGroup>();
}

public class WikiGroup
{
    public string Name { get; set; }
}
List元;
公共类WikiMeta
{
公共列表组=新列表();
}
公共类维基组
{
公共字符串名称{get;set;}
}

您可以使用
选择多个
将它们作为一个平面列表获取:

var groups = meta.SelectMany(m => m.Groups).ToList();
这将为您提供一个
列表

您可以在主
列表上执行任何查询,如下所示:

var filteredGroups = meta
    .Where(m => m.IsActive) // Fictional "IsActive" boolean property.
    .SelectMany(m => m.Groups)
    .ToList();
使用这种流畅的函数式方法查询集合,您可以开始构建更复杂的查询


如果希望将查询推迟到迭代后再执行,请删除
ToList
,这将为您提供一个
IEnumerable

,您可以使用
SelectMany
将它们作为一个平面列表获取:

var groups = meta.SelectMany(m => m.Groups).ToList();
这将为您提供一个
列表

您可以在主
列表上执行任何查询,如下所示:

var filteredGroups = meta
    .Where(m => m.IsActive) // Fictional "IsActive" boolean property.
    .SelectMany(m => m.Groups)
    .ToList();
使用这种流畅的函数式方法查询集合,您可以开始构建更复杂的查询


如果希望将查询推迟到迭代后再执行,请删除
ToList
,这将给您一个
IEnumerable

问题。您是否正在尝试筛选
列表
?您可以使用
查找
SelectMany
,例如:
Meta.SelectMany(m=>m.Groups)问题不清楚。您是否正在尝试筛选
列表
?您可以使用
查找
SelectMany
,例如:
Meta.SelectMany(m=>m.Groups)