Linq根据文化选择

时间:2013-04-30 12:06:49

标签: linq culture

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

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

或进行延期: 假设我首先使用linq代码,并使用一个名为Country且名为Name_fr,Name_no,Name _ **等的国家/地区。

    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 个答案:

答案 0 :(得分: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() });
    }