-3

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

我试过检查 RegionInfo 类,很可能答案就在那里。这个链接显示了我想要的https://www.iban.com/currency-codes

有没有办法在不使用表结构的情况下获得 3 位数的 currencyCode?即来自个人电脑或浏览器本身。基本上,如果用户选择他们的国家为美国,那么货币应该固定为美元。我可以用一些 sql 很容易地做到这一点。但我想在不打分贝的情况下做到这一点。即通过RegionInfo 或CultureInfo。

我不能使用 new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID).ISOCurrencySymbol 因为它从服务器中提取。

4

3 回答 3

2

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

var c = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
      .Select(t=> new RegionInfo(t.LCID))
      .Where(t=>t.ThreeLetterISORegionName  == "USA")
      .FirstOrDefault();
于 2019-11-27T11:46:02.847 回答
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

完整的区域信息可在此处获得

于 2019-11-27T11:40:26.330 回答
-1

您将需要在某处访问数据存储。

您的选择是:

  1. 数据库 - 您已经打折了(可能是因为您不想维护数据集)

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

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

我建议你看看:

https://restcountries.eu/

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

于 2019-11-27T11:41:15.113 回答