2012-04-18 66 views
1

我使用下面的代码显示本地化的国名(在其语言的国家名称),但大多数国家缺少像津巴布韦:本地化的国名

Dictionary<string, string> objDic = new Dictionary<string, string>(); 

       foreach (CultureInfo ObjCultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) 
       { 
        RegionInfo objRegionInfo = new RegionInfo(ObjCultureInfo.Name); 
        if (!objDic.ContainsValue(objRegionInfo.TwoLetterISORegionName.ToLower())) 
        { 
         objDic.Add(objRegionInfo.NativeName, objRegionInfo.TwoLetterISORegionName.ToLower()); 
        } 
       } 

       var obj = objDic.OrderBy(p => p.Key); 
       foreach (KeyValuePair<string, string> val in obj) 
       { 
        cmbCountry.Items.Add(new ListItem(val.Key, val.Value.ToUpper())); 
       } 

它显示了245个国家中的127个国家,请建议我解决这个问题。

感谢

回答

0

我想你需要改变这一行:

CultureInfo.GetCultures(CultureTypes.SpecificCultures) 

要这样:

CultureInfo.GetCultures(CultureTypes.AllCultures) 

这将feach所有文化。如果你看到MSDN:

CultureTypes.AllCultures , which returns all neutral and specific cultures, cultures installed in the Windows operating system, and custom cultures created by the user.

CultureTypes.SpecificCultures , which returns all specific cultures.

参考here

+0

给出的错误:区域名称ZH-CHS不应该对应中性文化;一个特定的文化名称是必需的。 参数名称:名称 – DotnetSparrow 2012-04-18 07:30:17