使用 Linq 获取列表中的列表

本文关键字:列表 获取 Linq 使用 | 更新日期: 2023-09-27 18:36:52

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

我有一个维基元维基列表

,我想查询并将所有维基组作为新列表返回。

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

List<WikiMeta> Meta;
public class WikiMeta
{
    public List<WikiGroup> Groups = new List<WikiGroup>();
}
public class WikiGroup
{
    public string Name { get; set; }
}

使用 Linq 获取列表中的列表

您可以使用以下

SelectMany方法将它们全部作为平面列表获取:

var groups = meta.SelectMany(m => m.Groups).ToList();

这会给你一个List<WikiGroup>.

SelectMany文档 .

您可以对主List<WikiMeta>执行所需的任何查询,如下所示:

var filteredGroups = meta
    .Where(m => m.IsActive) // Fictional "IsActive" boolean property.
    .SelectMany(m => m.Groups)
    .ToList();

使用这种流畅样式的函数方法来查询集合,可以开始构建更复杂的查询。

如果您希望将查询延迟到迭代,请删除ToList ,这将为您提供IEnumerable<WikiGroup>