c# - 如何从 C# 中的 CultureTypes 对象获取对值?

标签 c# linq ienumerable cultureinfo

我创建了 IEnumerable 的单个对象 想要使其成为字典类型对象来处理键和值。

想要从文化中提取货币符号和名称。

 IEnumerable<string> currencySymbols = CultureInfo.GetCultures(CultureTypes.SpecificCultures) //Only specific cultures contain region information
            .Select(x => (new RegionInfo(x.LCID)).ISOCurrencySymbol )
            .Distinct()
            .OrderBy(x => x);
            foreach(string s in currencySymbols)
            {
                CurrencyTable tbl = new CurrencyTable();
                tbl.Iso = s;
                tbl.Name = s;
            }

我想要像下面这样的

IEnumerable<string,string> 

怎么可能? CurrencyTable 是一个包含 ID | 的类。异|姓名 已提交

最佳答案

这个返回所有货币符号及其第一个不同的英文货币名称

var currencySymbols =
        CultureInfo.GetCultures(CultureTypes.SpecificCultures) //Only specific cultures contain region information
       .Select(x => new RegionInfo(x.LCID))
       .GroupBy(x => x.ISOCurrencySymbol)
       .Select(x => new CurrencyTable() {
            Iso = x.Key,
            Name = x.Select(y => y.CurrencyEnglishName).Distinct().FirstOrDefault()
        });

这是 LINQ 版本:

var symbols = from x in CultureInfo.GetCultures(CultureTypes.SpecificCultures)
                  let region = new RegionInfo(x.LCID)
                  group region by region.ISOCurrencySymbol into g
                  let names = from r in g select r.CurrencyEnglishName
                  select new CurrencyTable() {
                      Iso = g.Key,
                      Name = names.FirstOrDefault()
                  };

关于c# - 如何从 C# 中的 CultureTypes 对象获取对值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43754211/

相关文章:

c# - 将平面列表转换为关系列表

c# - 更好的数据表

c# - Linq:确定序列中的项目数是否满足条件

c# - 我不能在 .ascx 上使用 IEnumerable() 吗?

c# - 如何从 IEnumerable 中选择所有偶数位置项?

c# - 如何将图标添加到上下文菜单

c# - 动态设置/更改/更新当前文化 c#

c# - 用数组初始化列表

c# - 如何向 IEnumerable 添加一行

c# - Java中的包等于C#中的包?