It takes one minute to make someone's day, and one word to destroy someone's life.

Most projects I work on need a list of countries at some point so I put together a snippet of SQL that I could reuse to create and populate a countries table in the database with all countries as given in ISO 3166-1. After recently writing a utility class to populate list controls with world currencies according to ISO 4217 it got me wondering if I could also do the same for countries using only the .Net Framework. And so I came up with the following utility class to do the job. [code lang="csharp"] /// <summary> /// Populates the list control with countries as given by ISO 4217. /// </summary> /// <param name="ctrl">The list control to populate.</param> public static void FillWithISOCountries(ListControl ctrl) { foreach (CultureInfo cultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { RegionInfo regionInfo = new RegionInfo(cultureInfo.LCID); if (ctrl.Items.FindByValue(regionInfo.TwoLetterISORegionName) == null) { ctrl.Items.Add(new ListItem(regionInfo.EnglishName, regionInfo.TwoLetterISORegionName)); } } RegionInfo currentRegionInfo = new RegionInfo(CultureInfo.CurrentCulture.LCID); //- Default the selection to the current cultures country if (ctrl.Items.FindByValue(currentRegionInfo.TwoLetterISORegionName) != null) { ctrl.Items.FindByValue(currentRegionInfo.TwoLetterISORegionName).Selected = true; } }[/code]

comments powered by Disqus