【问题标题】:List<String> to List<CultureInfo> in asp net core在 asp net core 中列出 <String> 到 List<CultureInfo>
【发布时间】:2021-06-06 15:08:32
【问题描述】:

我想在启动时通过查询从数据库中设置列表文化信息,请帮助我,我该怎么做?

我的查询

public IEnumerable<string> GetListLanguagesTypes()
    {
    var cul = (from n in _context.Language
                       select n.TypeLanguage).ToList();
    return cul ;
    }

我的启动代码

var supportCulture = new List<CultureInfo>()
        {
            new CultureInfo("fa-IR"),
            new CultureInfo("en-US"),
            new CultureInfo("ru-RU"),
            new CultureInfo("ar-SA")
        };

我想从查询中替换 supportCulture

List<CultureInfo> supportCulture = (List<CultureInfo>)_language.GetListLanguagesTypes();

但我有一个错误

Unable to cast object of type 'System.Collections.Generic.List`1[System.String]' to type 'System.Collections.Generic.List`1[System.Globalization.CultureInfo]'.'

【问题讨论】:

  • 如果您需要帮助,您必须发布整个代码。例如什么是_language。字符串 GetListLanguagesTypes 返回的内容是什么?并发布整个启动代码

标签: asp.net-core localization cultureinfo culture asp.net-core-localization


【解决方案1】:

您可以尝试使用以下代码:

List<CultureInfo> supportCulture =_language.GetListLanguagesTypes()
                                  .Select(x => new CultureInfo(x))
                                  .ToList();

这是一个演示:

行动:

public void TestCultureInfo()
        {
            List<string> l = new List<string> { "fa-IR", "en-US", "ru-RU", "ar-SA" };
            List<CultureInfo> supportCulture = l
             .Select(x => new CultureInfo(x))
             .ToList();
        }

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多