获取除英语以外的其他语言的国家列表

Sar*_*nyu 14 .net c#

我可以使用下面的代码获取国家/地区名称列表,(从某些我无法记住的地方复制)

我的问题是,我可以获得其他语言的国家名单,例如泰国吗?

    /// <summary>
    /// method for generating a country list, say for populating
    /// a ComboBox, with country options. We return the
    /// values in a Generic List<T>
    /// </summary>
    /// <returns></returns>
    public static List<string> GetCountryList()
    {
        //create a new Generic list to hold the country names returned
        List<string> cultureList = new List<string>();

        //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)
        {
            //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);
        }
        return cultureList;
    }
Run Code Online (Sandbox Code Playgroud)

Cod*_*ter 11

http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo.displayname.aspx

DisplayName属性以.NET Framework的本地化版本的语言显示国家/地区名称.例如,DisplayName属性在英文版.NET Framework上以英语显示国家/地区,在西班牙语版本的.NET Framework上以西班牙语显示.

因此,看起来.NET Framework中的每种语言都没有国家/地区名称列表,只有安装的.NET Framework所使用的语言.


Yah*_*hia 5

要么使用DisplayName(在当前框架文化中NativeName为您提供名称),要么(在本地文化中为您提供名称)而不是EnglishName.

  • 我的回答有什么问题?NativeName为您提供该文化中的名称,而不是当前文化中的名称.所以South Afrika的NativeName是"Suid Afrika",摩洛哥的NativeName是"المملكةالمغربية".除英语或.NET Framework安装语言外,不可能根据一种文化获取所有国家/地区名称. (9认同)