public static void Main()
new { Name = "Vernon", Gender = "Male", CountryCode = "GB" },
new { Name = "Carrie", Gender = "Female", CountryCode = "CA" },
new { Name = "Joanna", Gender = "Female", CountryCode = "US" },
new { Name = "Thomas", Gender = "Male", CountryCode = "ES" },
new { Name = "James", Gender = "Male", CountryCode = "GB" },
new { Name = "Elly", Gender = "Female", CountryCode = "US" }
new {CountryName = "United Kingdom", Code = "GB"},
new {CountryName = "United States", Code = "US"},
new {CountryName = "Canada", Code = "CA"},
new {CountryName = "France", Code = "FR"},
new {CountryName = "Spain", Code = "ES"}
var results = countries.GroupJoin(people, arg => arg.Code,
(country, p) => new { Country = country, PeopleInCountry = p });
foreach (var r in results)
Console.WriteLine(r.Country.CountryName);
foreach (var person in r.PeopleInCountry)
Console.WriteLine(" {0}", person.Name);