C#:根据国家代码获取国家名称

5
我正在尝试使用C#从国家代码获取国家名称。
例如:
- fr-fr 可以获得法国。 - it-it 可以获得意大利。
我的代码问题在于我没有获得名称,而是类似于这样的信息:
French (France)

这是我的代码:
var cultureInfo = new CultureInfo("fr-fr");
var result : cultureInfo.EnglishName

我的结果是"法语(法国)"而不是"法国"

我通过使用的父级属性来获得我想要的结果,但我不确定这是否是一个好方法。


fr-frit-it不是国家代码。 - Azimuth
3个回答

8

由于 CultureInfo.EnglishName 仍然返回文化名称。

您可以基于此文化创建一个 RegionInfo 并调用其 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

我有“US”...如何从中获取国家名称?它不是以“us-usa”格式呈现的。 - Vikrant
US 本身并不指代 .net 框架上的任何文化或地区。例如,你必须要有一个字符串像 en-US。然后你可能想使用 TwoLetterISORegionName,它返回 USThreeLetterISORegionName,它返回 USA,在你基于该文化创建了 RegionInfo 实例之后。无论如何,你都必须进行一些字符串操作来获取你的字符串。 - Soner Gönül

4
这是获取国家名称的方法。
RegionInfo cultureInfo = new RegionInfo("fr-fr");
string result = cultureInfo.EnglishName;

0

尝试

var cultureInfoName = new RegionInfo(cultureInfo.Name);
string countryName = cultureInfoName.DisplayName;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接