asp.net - 从货币代码获取 CultureInfo?

标签 asp.net .net

我需要获取不同货币代码的 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);
}

打印:

cy-GB
gd-GB
en-GB

关于asp.net - 从货币代码获取 CultureInfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9230705/

相关文章:

ASP.NET 和 HTML 问题

.net - 当 .NET 崩溃报告中的 P9 "bucket"包含乱码而不是导致崩溃的异常名称时,这意味着什么?

c# - 什么是NullReferenceException,如何解决?

c# - C#.NET 和 Xamarin 移动应用程序共享代码库?

asp.net - Windows Azure 中的滑动过期

ASP.NET - 没有 JavaScript 的客户端

c# - 如何在 SQL Server 2008 中的特定列中存储列值?

asp.net - 如果缓存破坏器与内容不匹配,则阻止 bundle 响应

.net - 将附件添加到.NET电子邮件

c# - 当引用确实存在时,找不到类型或命名空间