2013-01-02 58 views

回答

2

沒有什麼內置的將國家名稱轉換爲其2個ISO字符的代碼。

您可以創建一個字典以在兩者之間進行映射。

var countryToISO2Map = new Dictionary<string,string>{ 
    {"Australia", "AU"}, 
    ...  
}; 
0

您可以從http://country.io/names.json獲得國家代碼的名稱到名稱的JSON映射。你只需要用類似的東西翻轉這個:

var countries = codes.ToDictionary(x => x.Value, x => x.Key); 

然後你可以很容易地從新的字典獲得國家代碼。

3

類似的問題問Country name to ISO 3166-2 code

/// <summary> 
    /// English Name for country 
    /// </summary> 
    /// <param name="countryEnglishName"></param> 
    /// <returns> 
    /// Returns: RegionInfo object for successful find. 
    /// Returns: Null if object is not found. 
    /// </returns> 
    static RegionInfo getRegionInfo (string countryEnglishName) 
    { 
     //Note: This is computed every time. This may be optimized 
     var regionInfos = CultureInfo.GetCultures(CultureTypes.SpecificCultures) 
      .Select(c => new RegionInfo(c.LCID)) 
      .Distinct() 
      .ToList(); 
     RegionInfo r = regionInfos.Find(
       region => region.EnglishName.ToLower().Equals(countryEnglishName.ToLower()));      
     return r; 
    } 
相關問題