我想为我的应用程序创建一个Currency ComboBox(下拉列表)控件,并且如果有人有一种巧妙的方式将它们放入数组中,那么我将在RegionInfo对象中存在作为属性的货币。
干杯,
理查德
答案 0 :(得分: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$
答案 1 :(得分:0)
对于我们这些使用.NET 2(没有选择内部数组)的人,并打破SLak的优秀答案中发生的一些事情:
(现在使用来自http://weblogs.asp.net/gunnarpeipman/archive/2008/05/15/getting-distinct-values-from-arrays.aspx的GetDistinctValues,因为.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();
}