我正在尝试使用 C# 从国家/地区代码中获取国家/地区名称
例如:
fr-fr
让我了解法国it-it
让我了解意大利我的代码的问题是我没有得到名称,而是得到这样的信息:
French (France)
这是我的代码:
var cultureInfo = new CultureInfo("fr-fr");
var result : cultureInfo.EnglishName
我的结果是
"French (France)"
而不是法国。
我已经设法通过使用cultureInfo的父属性来获得我想要的东西,但我不确定这是否是一个好方法。
CultureInfo.EnglishName
still 返回文化名称。
RegionInfo
并调用 it's EnglishName
属性。
var cultureInfo = new CultureInfo("fr-fr");
var ri = new RegionInfo(cultureInfo.Name);
ri.EnglishName // France
或
var cultureInfo = new CultureInfo("it-it");
var ri = new RegionInfo(cultureInfo.Name);
ri.EnglishName // Italy
您可以通过这种方式获取国家/地区名称
RegionInfo cultureInfo = new RegionInfo("fr-fr");
string result = cultureInfo.EnglishName;
尝试
var cultureInfoName = new RegionInfo(cultureInfo.Name);
string countryName = cultureInfoName.DisplayName;
我找到了输入国家/地区代码(TwoLetterISORegionName)并获取国家/地区名称的解决方案
private static string GetCountryName(string countrycode)
{
try
{
if (countrycode.Length > 2) return null;
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
var countryname = regions.FirstOrDefault(region => region.ISOCurrencySymbol.ToLower().Contains(countrycode) && region.TwoLetterISORegionName.ToLower() == countrycode);
return countryname.EnglishName;
}
catch (Exception) { }
return null;
}
输入“us”,得到“United States”