2014-04-16 17 views
0

我正在嘗試獲取加納(en-GB)和其他一些國家的ISO名稱和貨幣,但沒有顯示任何內容。當我運行代碼時,這就是我所得到的。請求CultureType時缺少一些文化。所有文化

using System; 
using System.Globalization; 

class Currency 
{ 
    public static void Main() 
    { 
     var cul = CultureInfo.GetCultures(CultureTypes.AllCultures); 
     foreach (var curr in cul) 
     { 
      Console.WriteLine(curr.TwoLetterISOLanguageName + " " 
       + curr.EnglishName + " " 
       + curr.NumberFormat.CurrencySymbol.ToString()); 
     } 
    } 
} 

SPOOLED結果

nn Norwegian, Nynorsk (Norway) kr 
pt Portuguese (Portugal) ? 
sr Serbian (Latin, Serbia and Montenegro (Former)) Din. 
sv Swedish (Finland) ? 
az Azeri (Cyrillic, Azerbaijan) ???. 
dsb Lower Sorbian (Germany) ? 
se Sami, Northern (Sweden) kr 
ga Irish (Ireland) ? 
ms Malay (Brunei Darussalam) $ 
uz Uzbek (Cyrillic, Uzbekistan) ??? 
bn Bengali (Bangladesh) ? 
mn Mongolian (Traditional Mongolian, PRC) 
iu Inuktitut (Latin, Canada) $ 
tzm Tamazight (Latin, Algeria) DZD 
quz Quechua (Ecuador) $ 
ar Arabic (Egypt) ?.?.? 
zh Chinese (Traditional, Hong Kong S.A.R.) HK$ 
de German (Austria) ? 
en English (Australia) $ 
es Spanish (Spain, International Sort) ? 
fr French (Canada) $ 
sr Serbian (Cyrillic, Serbia and Montenegro (Former)) ???. 
se Sami, Northern (Finland) ? 
quz Quechua (Peru) S/. 
+1

你在'cul'中有多少種文化?您使用的是哪個版本的.NET Framework?我使用的是.NET 4.5,它獲得了354種文化.. –

+1

'en-gb'是英語(英國),而不是加納。 – Chris

+2

加納沒有專門的語言文化名稱。由於90%的人口講英語,並且以前是英國黃金海岸的一部分,因此en-GB可能會回落。所以它會被列表中的「en」覆蓋。 –

回答

1

這個工作對我來說:

var culture = CultureInfo.GetCultureInfo("en-GB"); 
Console.WriteLine(culture.TwoLetterISOLanguageName); 
Console.WriteLine(culture.NumberFormat.CurrencySymbol); 

你應該記住,你的控制檯窗口不能在同一time.Try寫他們顯示所有的文化到一個文本文件然後檢查它的內容:

var cul = CultureInfo.GetCultures(CultureTypes.AllCultures); 

var lines = cul 
      .Select(x => string 
       .Join(" ", x.TwoLetterISOLanguageName, x.EnglishName, x.NumberFormat.CurrencySymbol)); 

File.WriteAllLines("cultures.txt",lines); 
0

我所試圖做的就是基於像所選文化的貨幣是:

的en-US - $ EN-GB - 英鎊

,但在全球化的命名空間中定義一些國家沒有貨幣。