2013-04-30 83 views
0

如果這是一個愚蠢的問題,我很抱歉,但如果我想根據文化返回列,最好的方法是什麼?Linq基於文化選擇

我想如果在LINQ select語句

有別人的或做的延伸: 說我使用的代碼先用LINQ和有一類國家,一個空的名稱和Name_fr,Name_no,名_ * *等。

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 }); 
     } 
    } 

有沒有一種標準的方式比STRX的字符串數據更基於文化? 對不起,如果這是重複的,但我找不到答案。

乾杯,鷹

回答

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() }); 
    } 
+0

感謝。希望有一種不同的方法,但我會堅持使用擴展方法:) – Hawk 2013-05-01 08:32:38