如何从CultureInfo获取国家/地区代码?

我有以下内容:

System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-GB"); var a = c.DisplayName; var b = c.EnglishName; var d = c.LCID; var e = c.Name; var f = c.NativeName; var g = c.TextInfo; var h = c.ThreeLetterISOLanguageName; var i = c.ThreeLetterWindowsLanguageName; var j = c.TwoLetterISOLanguageName; 

这些都没有给我国家代码,例如GB

有没有办法在没有字符串拆分的情况下获得它?

 var c = new CultureInfo("en-GB"); var r = new RegionInfo(c.LCID); string name = r.Name; 

最有可能你需要使用r.TwoLetterISORegionName属性。

 string regionName = r.TwoLetterISORegionName; 
 System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-GB"); var ri = new RegionInfo(c.Name); string countryName = ri.DisplayName; 

那会给你:

 "United Kingdom" 

两个字母使用:

 string countryAbbrivation = ri.TwoLetterISORegionName; 

那会给你“GB”

您可以尝试RegionInfo类 。 其中一个属性是RegionInfo.TwoLetterISORegionName属性 。 来自MSDN的示例:

 RegionInfo myRI1 = new RegionInfo("US"); Console.WriteLine( " Name: {0}", myRI1.Name ); Console.WriteLine( " ThreeLetterISORegionName: {0}", myRI1.ThreeLetterISORegionName ); Console.WriteLine( " TwoLetterISORegionName: {0}", myRI1.TwoLetterISORegionName ); 

姓名:美国

ThreeLetterISORegionName:USA

TwoLetterISORegionName:US

以下也将接受CultureInfo(“en”);

 var c = new CultureInfo("en-GB"); string countryAbbrivation; if (!c.IsNeutralCulture) { var region = new RegionInfo(ContentLanguage.PreferredCulture.LCID); countryAbbrivation = region.TwoLetterISORegionName.ToLower(); }else{ countryAbbrivation = c.Name; }