I need to add GroupID to students that have duplicate School and duplicate Age (Steve, Bill, Rich, Robert). Output needs to be cast in the original list format (List<Student>).
List<Student> studentList = new List<Student>() {
new Student() { StudentID = 1, StudentName = "John", Age = 18, School = "ABC" , GroupID = 0} ,
new Student() { StudentID = 2, StudentName = "Steve", Age = 21, School = "DEF", GroupID = 0 } ,
new Student() { StudentID = 3, StudentName = "Bill", Age = 21, School = "DEF", GroupID = 0 } ,
new Student() { StudentID = 4, StudentName = "Josh" , Age = 20, School = "DEF", GroupID = 0 },
new Student() { StudentID = 5, StudentName = "Jack" , Age = 19, School = "JKL", GroupID = 0 },
new Student() { StudentID = 6, StudentName = "Thomas" , Age = 18, School = "MNO", GroupID = 0 },
new Student() { StudentID = 7, StudentName = "Rich" , Age = 22, School = "PQR", GroupID = 0 },
new Student() { StudentID = 8, StudentName = "Robert" , Age = 22, School = "PQR", GroupID = 0 },
new Student() { StudentID = 9, StudentName = "John" , Age = 20, School = "PQR", GroupID = 0 },
new Student() { StudentID = 10, StudentName = "Emma" , Age = 20, School = "XYZ", GroupID = 0 }};
List<Student> outputList = studentList
.GroupBy(s => new { s.Age, s.School })
.Where(g => g.Count() >= 2)
.SelectMany(g => g)
.ToList();
Output:
Steve & Bill:
GroupID = 1Rich & Robert:
GroupID = 2
Any help is appreciated.