由网友(孤枕)分享简介:在C#是有可能得到一个货币符号,如£,从3字符货币code,在这种情况下,英镑?In C# is it possible to get a currency symbol, like '£', from the 3 character currency code, in this case 'GBP'?这是可能的无...
在C#是有可能得到一个货币符号,如£,从3字符货币code,在这种情况下,英镑?
In C# is it possible to get a currency symbol, like '£', from the 3 character currency code, in this case 'GBP'?
这是可能的无论是在SQL Server或在C#?
Is this possible either in SQL Server or in C#?
推荐答案
虽然有点蛮力,而不是特别优雅,你可以做这样的:
While a bit brute-force and not particularly elegant, you could do it like this:
public bool TryGetCurrencySymbol(string ISOCurrencySymbol, out string symbol)
{
symbol = CultureInfo
.GetCultures(CultureTypes.AllCultures)
.Where(c => !c.IsNeutralCulture)
.Select(culture => {
try{
return new RegionInfo(culture.LCID);
}
catch
{
return null;
}
})
.Where(ri => ri!=null && ri.ISOCurrencySymbol == ISOCurrencySymbol)
.Select(ri => ri.CurrencySymbol)
.FirstOrDefault();
return symbol != null;
}
和使用它,如下所示:
string currSymbol;
if(TryGetCurrencySymbol("GBP",out currSymbol))
{
Console.WriteLine("symbol is {0}", currSymbol);
}
如果您预计锤击这种方法,也许是更好地建设一个高速缓存前面:
If you anticipate hammering this method, perhaps it's better to build a cache up front:
public static class CurrencyTools
{
private static IDictionary<string,string> map;
static CurrencyTools()
{
map = CultureInfo
.GetCultures(CultureTypes.AllCultures)
.Where(c => !c.IsNeutralCulture)
.Select(culture => {
try{
return new RegionInfo(culture.LCID);
}
catch
{
return null;
}
})
.Where(ri => ri!=null)
.GroupBy(ri => ri.ISOCurrencySymbol)
.ToDictionary(x => x.Key, x => x.First().CurrencySymbol);
}
public static bool TryGetCurrencySymbol(
string ISOCurrencySymbol,
out string symbol)
{
return map.TryGetValue(ISOCurrencySymbol,out symbol);
}
}
在写这篇文章的时候,我的机器等等,等等在地图上包含以下映射:
At the time of writing, on my machine etc. etc. the map contains the following mappings:
AED د.إ.
AFN ؋
ALL Lek
AMD դր.
ARS $
AUD $
AZN man.
BAM KM
BDT ৳
BGN лв.
BHD د.ب.
BND $
BOB $b
BRL R$
BYR р.
BZD BZ$
CAD $
CHF fr.
CLP $
CNY ¥
COP $
CRC ₡
CSD Din.
CZK Kč
DKK kr.
DOP RD$
DZD DZD
EEK kr
EGP ج.م.
ETB ETB
EUR €
GBP £
GEL Lari
GTQ Q
HKD HK$
HNL L.
HRK kn
HUF Ft
IDR Rp
ILS ₪
INR रु
IQD د.ع.
IRR ريال
ISK kr.
JMD J$
JOD د.ا.
JPY ¥
KES S
KGS сом
KHR ៛
KRW ₩
KWD د.ك.
KZT Т
LAK ₭
LBP ل.ل.
LKR රු.
LTL Lt
LVL Ls
LYD د.ل.
MAD د.م.
MKD ден.
MNT ₮
MOP MOP
MVR ރ.
MXN $
MYR RM
NIO N
NOK kr
NPR रु
NZD $
OMR ر.ع.
PAB B/.
PEN S/.
PHP PhP
PKR Rs
PLN zł
PYG Gs
QAR ر.ق.
RON lei
RSD Din.
RUB р.
RWF RWF
SAR ر.س.
SEK kr
SGD $
SYP ل.س.
THB ฿
TJS т.р.
TMT m.
TND د.ت.
TRY TL
TTD TT$
TWD NT$
UAH ₴
USD $
UYU $U
UZS so'm
VEF Bs. F.
VND ₫
XOF XOF
YER ر.ي.
ZAR R
ZWL Z$
相关推荐
最新文章