基于文化的Linq选择

基于文化的Linq选择,linq,culture,Linq,Culture,如果这是一个愚蠢的问题,我很抱歉,但如果我想根据文化返回专栏,最好的方法是什么 我想在linq select语句中加入if ELSE 或进行扩展: 假设我首先在linq中使用代码,并且有一个带有空名称和名称\u fr、名称\u no、名称\u**等的类Country public static IEnumerable<Country> C(this IEnumerable<Country> Countries) { if (Thread.C

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

我想在linq select语句中加入if ELSE

或进行扩展: 假设我首先在linq中使用代码,并且有一个带有空名称和名称\u fr、名称\u no、名称\u**等的类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 });
        }
    }
公共静态IEnumerable C(此IEnumerable国家/地区)
{
如果(Thread.CurrentThread.CurrentUICulture.TwoLetterIsLanguageName==“en”)
{
返回国家。选择(x=>newcountry{x.Name=x.Name\u en});
}
}
是否有一种基于区域性的标准方法从resx获取超过字符串的数据? 如果这是重复的,我很抱歉,但是我找不到答案

干杯,霍克

像这样试试

    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() });
    }
公共静态IEnumerable C(此IEnumerable国家/地区)
{
var propName=string.Format(“Name_{0}”,Thread.CurrentThread.CurrentUICulture.TwoLetterIsLanguageName);
var localizedNameProp=typeof(Country).GetProperty(propName);
返回国家/地区。选择(x=>newcountry{Name=localizedNameProp.GetValue(x,null.ToString()});
}

谢谢。我希望有一种不同的方法,但我会坚持使用扩展方法:)