如何从3位数字的国家/地区代码中获取3位数字/字母的货币代码

问题描述 投票:-2回答:3

我有一个ddl,其值代表国家/地区代码。例如。 BRA,THA,UKR,AUS等我需要从每种设置的本地化设置中获取首选货币。

我已经尝试检查RegionInfo类,答案很可能就在那儿。该链接显示了我想要的内容https://www.iban.com/currency-codes

[不使用表结构就可以获取3位数字的CurrencyCode吗?,即从PC或浏览器本身。基本上,如果用户选择其国家/地区为美国,则货币应固定为美元。我可以很容易地用一些SQL做到这一点。但是我想做到这一点而不打数据库。即通过RegionInfo或CultureInfo。

我不能使用从服务器中拉出的新RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID).ISOCurrencySymbol。

c# sql cultureinfo regioninfo
3个回答
1
投票

如果这3个字母是ISO标准,则有解决方案,您可以应用此代码

var c = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
      .Select(t=> new RegionInfo(t.LCID))
      .Where(t=>t.ThreeLetterISORegionName  == "USA")
      .FirstOrDefault();

0
投票

您将需要访问某个地方的数据存储。

您的选择是:

  1. 数据库-您已经对其进行了折扣(可能是因为您不想维护数据集)

  2. 硬代码-再次需要您再次维护数据集。

  3. 使用外部数据源-例如API,第三方可以在其中提供响应HTTP请求所需的数据。好处是他们还可以为您维护数据集(尽管不能保证它保持最新状态)。

我建议您看看:

https://restcountries.eu/

它们提供了一系列的RESTful API端点,您可以查询这些端点来检索货币代码。


0
投票

。NET具有CultureInfo.NumberFormat.CurrencySymbol

RegionInfo us = new RegionInfo("en-US");
RegionInfo gb = new RegionInfo("en-GB");
RegionInfo fr = new RegionInfo("fr-FR");

Console.Out.WriteLine(us.CurrencySymbol); // $
Console.Out.WriteLine(gb.CurrencySymbol); // £
Console.Out.WriteLine(fr.CurrencySymbol); // €

Console.Out.WriteLine(us.ISOCurrencySymbol); // USD
Console.Out.WriteLine(gb.ISOCurrencySymbol); // GBP
Console.Out.WriteLine(fr.ISOCurrencySymbol); // EUR

完整的区域信息可用here

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