using System.Collections.Generic;
public static void Main()
var cities = new Dictionary<string, City>();
cities.Add("St. John's", new City(100645, "Newfoundland and Labrador"));
cities.Add("Halifax", new City(372680, "Nova Scotia"));
cities.Add("Fredricton", new City(34000, "New Brunsiwick"));
cities.Add("Charlottetown", new City(34562, "Prince Edward Island"));
cities.Add("Quebec", new City(8180000, "Quebec"));
cities.Add("Toronto", new City(2503000, "Ontario"));
cities.Add("Winnipeg", new City(633450, "Manitoba"));
cities.Add("Regina", new City(176245, "Saskatchewan"));
cities.Add("Edmonton", new City(730375, "Alberta"));
cities.Add("Victoria", new City(78055, "British Columbia"));
cities.Add("Iqaluit", new City(6699, "Nanavut"));
cities.Add("Yellowknife", new City(19234, "Northwest Territories"));
cities.Add("Whitehorse", new City(27889, "Yukon"));
foreach (var city in cities)
Console.WriteLine("{0} is a city in {1}", city.Key, city.Value.province);
var northAmericanCities = new HashSet<string>();
northAmericanCities.Add("Mexico City");
northAmericanCities.Add("New York City");
northAmericanCities.Add("Los Angeles");
northAmericanCities.Add("Toronto");
northAmericanCities.Add("Chicago");
northAmericanCities.Add("Houston");
northAmericanCities.Add("Havana");
northAmericanCities.Add("Ecatepec de Morelos");
northAmericanCities.Add("Montreal");
northAmericanCities.Add("Phoenix");
northAmericanCities.IntersectWith(cities.Keys);
foreach (var city in northAmericanCities)
Console.WriteLine("{0} is in Canada and also in the top 10 largest cities in North America.", city);
public int population { get; set; }
public string province { get; set; }
public City(int Population, string Province)
this.population = Population;
this.province = Province;