Search code examples
c#regionsregioninfo

Get RegionInfo by country name?


I want to be able to get RegionInfo by doing the following:

new RegionInfo("United Kingdom");

but this throws an exception and says that it is not recognised.

This page on RegionInfo says that an exception is thrown if 'name is not a valid country/region name'.

And yet this page specifies a list of predefined regions used by the class that and contains United Kingdom, so why doesn't creating a new RegionInfo with country name work?


Solution

  •   var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
      var englishRegion = regions.FirstOrDefault(region => region.EnglishName.Contains(name));
    

    If you want to get RegionInfo by the country name, you could get an IEnumerable<RegionInfo> and then filter based on the EnglishName as above. This gives you the ability to populate things such as comboboxes too.