using System.Collections.Generic;
public string FirstName ;
public int BBGamesWatched;
public static void Main()
List<Dev> devs = new List<Dev>()
new Dev { FirstName = "Brenda", HasChildren = true, BBGamesWatched = 3},
new Dev { FirstName = "Julian", HasChildren = false, BBGamesWatched = 2},
new Dev { FirstName = "Yousef", HasChildren = false, BBGamesWatched = 4},
new Dev { FirstName = "Nelson", HasChildren = true, BBGamesWatched = 2},
new Dev { FirstName = "Phil", HasChildren = true, BBGamesWatched = 1},
new Dev { FirstName = "Tim", HasChildren = true, BBGamesWatched = 5},
new Dev { FirstName = "Julia", HasChildren = false, BBGamesWatched = 0},
new Dev { FirstName = "Andrea", HasChildren = false, BBGamesWatched = 1},
new Dev { FirstName = "Chetna", HasChildren = false, BBGamesWatched = 2},
var kidsResults = devs.GroupBy(dev => dev.HasChildren, dev => dev.FirstName, (key, g) => new {HasKids=key, Names = g.ToList()});
foreach(var item in kidsResults){
Console.WriteLine(item.HasKids ? "Has Kids:" : "No Kids:");
foreach(string name in item.Names) {
Console.WriteLine("-------------------");
var lengthResults = devs.GroupBy(dev => dev.FirstName.Length, dev => dev.FirstName, (key, people) => new {NameLength=key, Names = people.OrderBy(x=>x).ToList()}).OrderBy(g => g.NameLength);
foreach(var item in lengthResults){
Console.WriteLine("Name Length: " + item.NameLength);
foreach(string name in item.Names) {
Console.WriteLine("-------------------");
int gamesResults = devs.Select(dev => dev.BBGamesWatched).Sum();
Console.WriteLine("Total games watched: " + gamesResults);