c# - unidos - ¿Cómo obtener el código de país de CultureInfo?
de donde es el area 714 en mexico (4)
Tengo los siguientes
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;
Nada de esto me da el código del país, por ejemplo, GB
.
¿Hay una manera de conseguirlo sin división de cadena?
Los siguientes también aceptarán 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;
}
Puedes probar la clase RegionInfo . Una de las propiedades es la propiedad RegionInfo.TwoLetterISORegionName . Ejemplo de MSDN:
RegionInfo myRI1 = new RegionInfo("US");
Console.WriteLine( " Name: {0}", myRI1.Name );
Console.WriteLine( " ThreeLetterISORegionName: {0}", myRI1.ThreeLetterISORegionName );
Console.WriteLine( " TwoLetterISORegionName: {0}", myRI1.TwoLetterISORegionName );
Nombre: nosotros
ThreeLetterISORegionName: USA
TwoLetterISORegionName: US
var c = new CultureInfo("en-GB");
var r = new RegionInfo(c.LCID);
string name = r.Name;
Lo más probable es que necesite utilizar la propiedad 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;
Eso te dará:
"United Kingdom"
Para el uso de dos letras:
string countryAbbrivation = ri.TwoLetterISORegionName;
Eso te dará "GB"