本主题演示创建查询的两种不同方式,此查询将源数据排序成组,然后分别对每个组执行子查询。 每个示例中的基本方法是使用名为 newGroup
的“接续块”对源元素进行分组,然后针对 newGroup
生成新的子查询。 针对由外部查询创建的每个新组运行此子查询。 请注意,在此特定示例中,最终输出不是组,而是一系列匿名类型。
public void QueryMax() { var queryGroupMax = from student in students group student by student.Year into studentGroup select new { Level = studentGroup.Key, HighestScore = (from student2 in studentGroup select student2.ExamScores.Average()).Max() }; int count = queryGroupMax.Count(); Console.WriteLine($"Number of groups = {count}"); foreach (var item in queryGroupMax) { Console.WriteLine($" {item.Level} Highest Score={item.HighestScore}"); } }