首页 > 解决方案 > 嵌套列表上的 Linq c#

问题描述

我有一个看起来像这样的层次结构:

public class GetCategoriesReply : BaseReply
{
    public IEnumerable<Subsystem> Categories { get; set; }
}
public class Subsystem
{
    public IEnumerable<cat1> cat1 { get; set; }
    public string id { get; set; }
    public string name { get; set; }
}
public class cat1
{
    public IEnumerable<cat2> cat2 { get; set; }
    public string id { get; set; }
    public string name { get; set; }

}
public class cat2
{
    public IEnumerable<cat3> cat3 { get; set; }
    public string id { get; set; }
    public string name { get; set; }

}
public class cat3
{
    public string id { get; set; }
    public string name { get; set; }

}

如果可能的话,我想从查询中获取 Cat3 的列表。我已经尝试过了,但没有让它工作:

var cat3list = categoryList.Categories
            .Where(s => s.name == "Payment")
            .Select(x => x.cat1.Where(c => c.name == "Admin").SelectMany(y => y.cat2.Select(z => z.cat3))
            .ToList());

有什么建议么?亲切的问候/鲁迪

标签: c#listlinq

解决方案


var cat3list = Categories.Where(s => s.name == "Payment")
      .SelectMany(x => x.cat1).Where(c => c.name == "Admin")
      .SelectMany(x => x.cat2)
      .SelectMany(x => x.cat3).ToList();

推荐阅读