C#如何根据学生列表筛选包含指定学生的SchoolClass?
筛选包含指定学生的班级集合
我们需要从schoolClasses集合中筛选出学生列表包含searchedStudents中任意一名学生的SchoolClass实例,通过LINQ的Any方法即可高效实现。
完整代码示例
using System; using System.Collections.Generic; using System.Linq; public class SchoolClass { public List<string> students { get; set; } } class Program { static void Main() { List<string> searchedStudents = new List<string> { "Brian","Adrian","Matt","Chloe"}; // 初始化示例班级数据 List<SchoolClass> schoolClasses = new List<SchoolClass> { new SchoolClass { students = new List<string> { "Brian", "Zara" } }, new SchoolClass { students = new List<string> { "Sophie", "Zara" } } }; // 核心筛选逻辑 var filteredClasses = schoolClasses .Where(cls => cls.students.Any(student => searchedStudents.Contains(student))) .ToList(); // 输出结果验证 foreach (var cls in filteredClasses) { Console.WriteLine($"匹配班级的学生:{string.Join(", ", cls.students)}"); } } }
筛选逻辑说明
- 遍历每个
SchoolClass实例,通过Any方法判断该班级的学生列表中是否存在任意一名学生属于searchedStudents集合 - 筛选结果:
- 含"Brian"的班级1会被保留
- 无匹配学生的班级2会被排除
内容的提问来源于stack exchange,提问作者pop
相关产品推荐
相关产品推荐

