繁体   English   中英

第 3 个子级的 Linq 查询

[英]Linq query on 3rd child level

我对对象列表有以下要求。 我的班级结构是这样的:

  public class Standard
    {
    public long Id {get;set;}
    public string Name {get;set;}
    public List<Student> Students {get;set;}
    }
    
    public class Student
    {
    public long Id {get;set;}
    public string Name {get;set;}
    public List<Hobby> Hobbies {get;set;}
    }
    
    public class Hobby
    {
    public long Id {get;set;}
    public string Name {get;set;}  
    }

我想在以下场景中根据爱好进行过滤:

  • 对有演奏音乐爱好的学生的所有标准清单
  • 对有唱歌爱好的学生的所有标准清单

目前,我有可用的列表,其中包含所有子类和详细信息。 我可以用 ForEach 循环来做到这一点,但想学习这个场景的 Linq 语法。

请为此建议 Linq 语法。

鉴于你有一个集合的Standard称为standards

对有演奏音乐爱好的学生的所有标准清单

var result = standards.Where(s => s.Students.Any(u => u.Hobbies.Any(h => h.Name == "Playing Music")));

对有唱歌爱好的学生的所有标准清单

var result = standards.Where(s => s.Students.Any(u => u.Hobbies.Any(h => h.Name == "Playing Music")));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM