sql >> データベース >  >> RDS >> Sqlserver

3桁の通貨コードから通貨記号へ

    少し強引で特にエレガントではありませんが、次のようにすることができます:

    public bool TryGetCurrencySymbol(string ISOCurrencySymbol, out string symbol){ symbol =CultureInfo .GetCultures(CultureTypes.AllCultures) .Where(c => !c.IsNeutralCulture) .Select(culture => { try{ return new RegionInfo(culture.Name); } catch { return null; } }) .Where(ri => ri!=null &&ri.ISOCurrencySymbol ==ISOCurrencySymbol) .Select(ri => ri.CurrencySymbol) .FirstOrDefault();戻り記号 !=null;}  

    次のように使用します:

    string currSymbol;if(TryGetCurrencySymbol("GBP",out currSymbol)){ Console.WriteLine("symbol is {0}", currSymbol);}  

    このメソッドを攻撃することが予想される場合は、事前にキャッシュを構築することをお勧めします:

    public static class CurrencyTools{ private static IDictionary map; static CurrencyTools() { map =CultureInfo .GetCultures(CultureTypes.AllCultures) .Where(c => !c.IsNeutralCulture) .Select(culture => { try{ return new RegionInfo(culture.Name); } 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); }}  

    執筆時点で、私のマシンなどでは、マップには次のマッピングが含まれています:

    AED د.إ. AFN ؋ALL LekëAMD ÊANG NAf.AOA KzARS $AUD $AWG Afl.AZN ₼BAM КМBBD $BDT ৳BGN лв.BHD د.ب. BIF FBuBMD $BND $BOB BsBRL R$BSD $BTN Nu.BWP PBYN BrBZD $CAD $CDF FCCHF CHFCLP $CNY ¥COP $CRC ₡CUP $CVE CZK KčDJF FdjDKK kr.DOP $DZD د.just €FJD $FKP £GBP £GEL ₾GHS GH₵GIP £GMD DGNF FGGTQ QGYD $HKD $HNL LHRK knHTG GHUF FtIDR RpILS ₪INR ₹IQD د.ع. IRR ريالISK krJMD $JOD د.ا. JPY ¥KES KshKGS сомKHR ៛KMF CFKPW ₩KRW ₩KWD денMMK KMNT ₮MOP MOP $MRU MRUMUR RsMVR .MWK MKMXN $MYR RMMZN MTnNAD $NGN ₦NIO C$NOK krNPR रुNZD $OMR ر.ع. PAB B/.PEN S/PGK KPHP ₱PKR RsPLN złPYG ₲QAR ر.ق. RON leiRSD дин.RUB ₽RWF RFSAR ر.س. SBD $SCR SRSDG ج.س.SEK krSGD $SHP £SLL LeSOS SSRD $SSP £STN DbSYP ل.س. SZL ETHB ฿TJS смнTMT m.TND د.ت.トップ T$TRY ₺TTD $TWD NT$TZS TShUAH ₴UGX UShUS D $UYU $UZS сўмVES Bs.SVND ₫VUV VTWST WS$XAF FCFAXCD EC$XDR XDRXOF CFAXPF FCFPYER ر.ي. ZAR RZMW K  

    1. 12cのSEC_CASE_SENSTIVE_LOGON

    2. MySQLまたはMariaDBサーバーの本番環境への準備-パート2-

    3. リモートマシンで実行されているMSSQLデータベースをLinuxで実行されているローカルMySQLデータベースに移行し、エンコーディングを保持する方法

    4. 同じテーブルの別の列からのMySQLNOTIN