private static readonly Regex CitySpaceState = new Regex(@"\s*(.+)\s+([A-Za-z]{2})\s*"); // Only supports two letter state codes for now #endregion Fields #region Constructors static CityList() { IEnumerable<string> entries = Properties.Resources.CityGeocodes.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (var entry in entries) { var parts = entry.Split(',').Select(part => part.Trim('"')).ToList(); // This is in the form longitude, latitude var city = new City(parts[0], new State(parts[1]), new Geocode(double.Parse(parts[3]), double.Parse(parts[2]))); CityLookup[new KeyValuePair<string, string>(city.Name, city.State.Abbreviation)] = city; Cities.Add(city); } }
public Address GetAddressFromCity(City city) { var address = CityStateLookup[city]; return new Address(address.StreetAddress, address.City.Name, address.State.Name, address.ZipCode.Code, address.County.Name, address.City.Geocode); }