首页 文章

Linq根据文化选择

提问于
浏览
0

如果这是一个愚蠢的问题,我很抱歉,但如果我想根据文化返回专栏,最好的方法是什么?

我想过如果在linq select语句中有elses

或者进行扩展:假设我首先使用linq的代码,并使用一个具有空名称和Name_fr,Name_no,Name _ **等的类Country .

public static IEnumerable<Country> C(this IEnumerable<Country> Countries)
    {
        if (Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName == "en")
        {
            return Countries.Select(x => new Country { x.Name = x.Name_en });
        }
    }

是否有基于文化的resx字符串数据的标准方式?如果这是重复,我很抱歉,但我找不到答案 .

干杯,鹰

1 回答

  • 1

    试试这样吧

    public static IEnumerable<Country> C(this IEnumerable<Country> Countries)
        {
            var propName = string.Format("Name_{0}", Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
            var localizedNameProp = typeof(Country).GetProperty(propName);
    
            return Countries.Select(x => new Country { Name = localizedNameProp.GetValue(x, null).ToString() });
        }
    

相关问题