0

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

我曾想过在 linq select 语句中有 if 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 中的字符串数据之外,还有其他标准方法吗?如果这是重复的,我很抱歉,但我找不到答案。

干杯,鹰

4

1 回答 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() });
    }
于 2013-04-30T12:39:05.027 回答