using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Dictionary<string, City> Cities = new Dictionary<string, City>();
Cities.Add("Toronto", new City("Ontario", 12851821));
Cities.Add("Quebec City", new City("Quebec", 7903001));
Cities.Add("Halifax", new City("Nova Scotia", 921727));
Cities.Add("Fredericton", new City("New Brunswick", 751171));
Cities.Add("Winnipeg", new City("Manitoba", 4400057));
Cities.Add("Victoria", new City("British Columbia", 140204));
Cities.Add("Charlottetown", new City("Prince Edward Island", 270000));
Cities.Add("Saskatoon", new City("Saskatchewan", 1033381));
Cities.Add("Edmonto", new City("Alberta", 3645257));
Cities.Add("St John's", new City("Newfoundland and Labrador", 514536));
Cities.Add("Yellowknife", new City("Northwesteren Territories", 41462));
Cities.Add("Whitehorse", new City("Yukon", 33897));
Cities.Add("Iqaluit", new City("Nunavut", 31906));
foreach (var city in Cities)
Console.WriteLine(city.Key + " is a city in " + city.Value);
var AmericanCities = new HashSet<string>();
AmericanCities.Add("Mexico City");
AmericanCities.Add("New York City");
AmericanCities.Add("Los Angeles");
AmericanCities.Add("Toronto");
AmericanCities.Add("Chciago");
AmericanCities.Add("Houston");
AmericanCities.Add("Havana");
AmericanCities.Add("Ecatepec de Morelos");
AmericanCities.Add("Montreal");
AmericanCities.Add("Phoenix");
AmericanCities.IntersectWith(Cities.Keys);
foreach (var city in AmericanCities)
Console.WriteLine(city + " is in Canada and also in the top 10 largest cities in North America");
public City(string Province, int Population)
this.Population = Population;
this.Province = Province;
public override string ToString()
return string.Format("{0}", this.Province);