Получение списка стран на C#

суббота, 19 июня 2010, Александр Краковецкий

Каждый сайт, который имеет форму регистрации, содержит поле "Страна". Список стран, как правило, хранится в базе данных, но перед этим этот список должен там каким-то образом появиться. Здесь вариантов может быть несколько - можно найти список и его экспортировать в базу данных, можно нехитрыми движениями рук скопировать / вставить все страны, а можно сделать все программно.

Рассмотрим, как можно получить список стран программно на языке C#.

Для этого воспользуемся классами CultureInfo и RegionInfo для получения информации о культурах и регионах:

        static void Main(string[] args)
        {
            //create a new Generic list to hold the country names returned
            List cultureList = new List();

            //create an array of CultureInfo to hold all the cultures found, these include the users local cluture, and all the
            //cultures installed with the .Net Framework
            CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);

            //loop through all the cultures found
            foreach (CultureInfo culture in cultures)
            {
                try
                {
                    //pass the current culture's Locale ID (http://msdn.microsoft.com/en-us/library/0h88fahh.aspx)
                    //to the RegionInfo contructor to gain access to the information for that culture
                    RegionInfo region = new RegionInfo(culture.LCID);

                    //make sure out generic list doesnt already
                    //contain this country
                    if (!(cultureList.Contains(region.EnglishName)))
                    {
                        //not there so add the EnglishName (http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.englishname.aspx)
                        //value to our generic list
                        cultureList.Add(region.EnglishName);
                    }
                }
                catch (ArgumentException ex) 
                {
                    // just ignor this
                    continue;
                }
            }
            cultureList.Sort();

            StringBuilder sb = new StringBuilder();
            foreach (var country in cultureList) {
                sb.AppendLine(country);
            }

            Console.WriteLine(sb.ToString());
            File.WriteAllText("countries.txt", sb.ToString());
            Console.ReadKey();
        }

Как вы видите, мы сначала получаем список культур с помощью CultureInfo.GetCultures(), далее по Locale ID создаем экземпляр класса RegionInfo, который хранит необходимую нам информацию. После добавления в список всех названий стран мы сортируем список и выводим их на экран:

Также мы можем сохранить список в текстовый файл (или другой удобный вам формат), а также записать полученные данные в базу данных, например с помощью LINQ to SQL.

Надеюсь, что этот маленький tip поможет сэкономить немного времени, если, конечно, вам необходимо будет решать такую задачу.

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии