71
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
5
6
public class Program
7
{
8
public static void Main()
9
{
10
List<Student> students = new List<Student>
11
{
12
new Student { ID = 1, Name = "Alice Johnson", Courses = new List<Course> { new Course { CourseID = "C101", CourseName = "Mathematics" }, new Course { CourseID = "C102", CourseName = "Science" } } },
13
new Student { ID = 2, Name = "Bob Smith", Courses = new List<Course> { new Course { CourseID = "C101", CourseName = "Mathematics" }, new Course { CourseID = "C103", CourseName = "History" } } },
14
new Student { ID = 3, Name = "Charlie Brown", Courses = new List<Course> { new Course { CourseID = "C102", CourseName = "Science" } } },
15
new Student { ID = 4, Name = "Diane Miller", Courses = new List<Course> { new Course { CourseID = "C101", CourseName = "Mathematics" } } }
16
};
17
18
// Flatten the list to get all student-course enrollments
19
var courseEnrollments = students.SelectMany(s => s.Courses, (s, c) => new { s.ID, s.Name, c.CourseID, c.CourseName }).ToList();
20
21
// Step 1: Identify courses with the highest student enrollment
22
var coursesWithHighestEnrollment = courseEnrollments
23
.GroupBy(e => e.CourseID)
24
.Select(group => new { CourseID = group.Key, EnrollmentCount = group.Count() })
Cached Result
<parent>
<child>1</child>
<child>2</child>
</parent>
<child>1</child>
<child>2</child>
</parent>