c# : 从国家代码获取国家名称

问题描述 投票:0回答:4

我正在尝试使用 C# 从国家/地区代码中获取国家/地区名称

例如:

  • fr-fr
    让我了解法国
  • it-it
    让我了解意大利

我的代码的问题是我没有得到名称,而是得到这样的信息:

French (France)

这是我的代码:

var cultureInfo = new CultureInfo("fr-fr");
var result : cultureInfo.EnglishName

我的结果是

"French (France)"
而不是法国。

我已经设法通过使用cultureInfo的父属性来获得我想要的东西,但我不确定这是否是一个好方法。

c# cultureinfo
4个回答
8
投票

因为

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

4
投票

您可以通过这种方式获取国家/地区名称

RegionInfo cultureInfo = new RegionInfo("fr-fr");
string result = cultureInfo.EnglishName;

0
投票

尝试

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

0
投票

我找到了输入国家/地区代码(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”

© www.soinside.com 2019 - 2024. All rights reserved.