从货币代码获取 CultureInfo?

2023-12-31

我需要获取不同货币代码的 System.Globalization.CultureInfo。

示例:欧元、英镑、美元

目前,我正在基于这 3 个字母货币代码的 switch 语句中执行以下操作,显然这不是执行此操作的方法:

var ci = new System.Globalization.CultureInfo("en-US"); 

有人有一种干净的方法可以使用货币代码来实现相同的结果吗?


static IEnumerable<CultureInfo> GetCultureInfosByCurrencySymbol(string currencySymbol)
{
    if (currencySymbol == null)
    {
        throw new ArgumentNullException("currencySymbol");
    }

    return CultureInfo.GetCultures(CultureTypes.SpecificCultures)
        .Where(x => new RegionInfo(x.LCID).ISOCurrencySymbol == currencySymbol);
}

例如

foreach (var culture in GetCultureInfosByCurrencySymbol("GBP"))
{
    Console.WriteLine(culture.Name);
}

prints:

cy-GB
gd-GB
en-GB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从货币代码获取 CultureInfo? 的相关文章

随机推荐