web-dev-qa-db-ja.com

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

文字列を分割せずにそれを取得する方法はありますか?

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

おそらくあなたはr.TwoLetterISORegionNameプロパティ。

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

それはあなたに与えるでしょう:

"United Kingdom"

2文字使用の場合:

string countryAbbrivation = ri.TwoLetterISORegionName;

それはあなたに「GB」を与えるでしょう

8
Habib

RegionInfo Class を試すことができます。プロパティの1つは RegionInfo.TwoLetterISORegionName Property です。 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

5
Abbas

現在のスレッドのRegionInfoだけを使用したい場合は、次の1行で国コードを取得できます。

RegionInfo.CurrentRegion.TwoLetterISORegionName
1
William