2011-01-10 3 views
2

Я хотел сделать управление валютой ComboBox (выпадающим списком) для своего приложения и учитывая, что валюты существуют как свойства внутри объекта RegionInfo, я бродил, если у кого был аккуратный способ помещать их в массив.C# currency combobox

Приветствия,

Ричард

ответ

7

Как это:

CultureInfo.GetCultures(CultureTypes.SpecificCultures) 
      .Select(c => new RegionInfo(c.LCID).CurrencySymbol) 
      .Distinct() 

На мой (Windows 7) машины, это приводит к

ر.س.‏ 
лв. 
€ 
NT$ 
Kč 
kr. 
$ 
₪ 
Ft 
¥ 
₩ 
kr 
zł 
R$ 
fr. 
lei 
р. 
kn 
Lek 
฿ 
TL 
Rs 
Rp 
₴ 
Ls 
Lt 
т.р. 
ريال 
₫ 
դր. 
man. 
ден. 
R 
Lari 
रु 
RM 
Т 
сом 
S 
m. 
so'm 
টা 
ਰੁ 
રૂ 
ଟ 
ரூ 
రూ 
ರೂ 
ക 
ট 
₮ 
£ 
៛ 
₭ 
ل.س.‏ 
රු. 
ETB 
؋ 
PhP 
ރ. 
N 
$b 
һ. 
с. 
Q 
RWF 
XOF 
د.ع.‏ 
Fr. 
Din. 
ман. 
сўм 
৳ 
DZD 
ج.م.‏ 
HK$ 
Дин. 
S/. 
د.ل.‏ 
KM 
د.ج.‏ 
MOP 
CHF 
₡ 
د.م.‏ 
B/. 
د.ت.‏ 
RD$ 
КМ 
ر.ع.‏ 
J$ 
Bs. F. 
ر.ي.‏ 
BZ$ 
د.ا.‏ 
TT$ 
ل.ل.‏ 
Z$ 
د.ك.‏ 
Php 
د.إ.‏ 
$U 
د.ب.‏ 
Gs 
ر.ق.‏ 
Rs. 
L. 
C$ 
0

Для тех из нас на .NET 2 (без выбора внутри массивов) и вырвать некоторые из вещей, которые происходят в отличном ответе SLak:

(Теперь с помощью GetDistinctValues ​​из http://weblogs.asp.net/gunnarpeipman/archive/2008/05/15/getting-distinct-values-from-arrays.aspx, потому что нет никакого отчетливого в .Net 3.5)

 CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures); 
     List<string> CountryCodes = new List<string>(); 
     foreach (CultureInfo ci in cultures) 
     { 
      RegionInfo ri = new RegionInfo(ci.LCID); 
      CountryCodes.Add(ri.ISOCurrencySymbol); 
     } 
     string [] CountryCodeArray = GetDistinctValues(CountryCodes.ToArray()); 

public string[] GetDistinctValues(string[] array) 
{ 
    List<string> list = new List<string>(); 

    for (int i = 0; i < array.Length; i++) 
    { 
     if (list.Contains(array[i])) 
      continue; 
     list.Add(array[i]); 
    } 
    return list.ToArray(); 
} 
+0

Вы можете назвать 'Array.ConvertAll'. Кроме того, 'Distinct' является новым для .Net 3.5. – SLaks