0

我正在尝试将 ISO 货币代码转换为货币符号,但返回值RegionInfo似乎被交换了。这是我的代码:

foreach (CultureInfo nfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
     RegionInfo region = new RegionInfo(nfo.LCID);
     Log("ISO: " + region.ISOCurrencySymbol);
     Log("Symbol: " + region.CurrencySymbol);
}

编辑: Log() 方法仅打印一个字符串以用于调试目的。

对于每种语言,我都会得到如下信息:

  • ISO:美元(应为“美元”)
  • 符号:美元(应为“$”)

这怎么可能发生,我该如何解决?

Edit2:测试了更多:RegionInfo 中的大多数字段似乎都是空的,.CurrencyNativeName 抛出 NotImplementedException。这到底是怎么回事?

4

1 回答 1

0

我知道它很晚,但这里对我有用

        public List<string> getCurrencyCode()
        {
            List<string> CountryList = new List<string>();
            List<string> CurrencyList = new List<string>();
            CultureInfo[] getCultureInfo = CultureInfo.GetCultures(CultureTypes.SpecificCultures);

            foreach (CultureInfo getCulture in getCultureInfo)
            {
                 RegionInfo ri = new RegionInfo(getCulture.LCID);
                //Region includes country name and currency symbols
                //make sure no repeats
                if (!(CountryList.Contains(ri.EnglishName))) 
                {
                   CountryList.Add(ri.EnglishName);
                   CurrencyList.Add(ri.ISOCurrencySymbol);                    
                }
           }
            return CurrencyList;
        }
于 2018-02-10T06:58:20.477 回答