如果您使用的是完整的.NET Framework *,您可以通過枚舉CultureInfo
實例並創建相關的RegionInfo
LCID
來獲取唯一的貨幣。然後,您可以從RegionInfo
返回相關的貨幣領域,即:ISOCurrencySymbol
,CurrencyEnglishName
和CurrencySymbol
。
例如,下面的代碼將返回不同ISOCurrencySymbol
與相關聯的名稱和符號一起。
var currencies = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(ci => ci.LCID).Distinct()
.Select(id => new RegionInfo(id))
.GroupBy(r => r.ISOCurrencySymbol)
.Select(g => g.First())
.Select(r => new
{
r.ISOCurrencySymbol,
r.CurrencyEnglishName,
r.CurrencySymbol,
});
對於原來的問題提供了ISO符號,將返回以下信息:
AUD $,澳大利亞元
CAD,$,加拿大元
歐元,?歐元
英鎊,£英鎊
JPY,¥,日元
美元,$,美元
注意:RegionInfo.CurrencyNativeName
也存在,但它會提供給定區域的本地語言的貨幣名稱。因此,同一個ISOCurrencySymbol
可能會有與其關聯的CurrencyNativeName
的各種實例,並且在此場景中映射不會有用。
* .NET核心似乎並不支持枚舉CultureInfo
。
爲了好玩,我寫了名爲'CurrencyInfo'一個助手類,它封裝了上述行爲。 https://gist.github.com/pjking07/88b9e7127ec4a1208a055ab067adf79d – 2017-08-11 21:04:16