public char Class { get; set; }
public Activity Activity { get; set; }
public char Groups { get; set; }
public static void Main()
new() { Class = 'A', Activity = Activity.Dance, Groups = 'B'},
new() { Class = 'A', Activity = Activity.Sing, Groups = 'B' },
new() { Class = 'A', Activity = Activity.Sing, Groups = 'B' },
new() { Class = 'B', Activity = Activity.Dance, Groups = 'B' },
new() { Class = 'B', Activity = Activity.Sing, Groups = 'B' }
.GroupBy(school => new { school.Class, school.Activity })
.Select(gr => gr.First())
.GroupBy(row => row.Activity)
.All(gr => gr.Select(row => row.Groups).Distinct().Count() == 1);
Console.WriteLine(result);