2011-03-02 25 views
6

Tengo un menú desplegable con abreviaturas de moneda como EUR, USD, GBP y para todas las demás monedas. Me gustaría utilizar alguna funcionalidad/método de C# .Net donde pueda insertar una abreviatura de moneda y devuelva el símbolo de moneda (€, $, £).

Espero que alguien me pueda ayudar.

Respuesta

3

No hay nada en el marco para manejar esto específicamente, pero puede resolverlo usando un Dictionary de abreviaturas de moneda y símbolos.

2

No sé de nada integrado en el marco, pero si usted tiene una lista de las monedas que le interesan, esto suena como un lugar perfecto para utilizar un Dictionary<string, string> o posiblemente un Dictionary<string, char> (No sé si hay símbolos de varios caracteres, pero no me sorprendería).

+1

El viejo símbolo de Deutsch Mark era DM, así que apuesto a que hay otros más. –

+1

'KWD',' SAR', 'AED' son tres acrónimos de moneda de tres letras. La mayoría de las monedas no tienen un símbolo, pero utilizan sus abreviaturas ISO enumeradas en [ISO 4217] (http://en.wikipedia.org/wiki/ISO_4217). Si su aplicación está traducida, debe usar el símbolo apropiado. Por ejemplo 'Kuwaiti Dinar' es' KWD' y también 'د.ك' –

1

Puede usar un ArrayList/tabla hash para almacenar EUR, USD, GBP con sus respectivos Unicode 0x20A0 [euros], 0x0024 [USD] & 0x00A3 [GBP].

Puede recuperar datos de esta lista de arrays/hashtable cuando lo necesite o en el evento de cambio de la lista desplegable.

2

que estaba buscando alguna solución dinámica y encontré esto:

RegionInfo regionInfo = (from culture in CultureInfo.GetCultures(CultureTypes.InstalledWin32Cultures) 
            where culture.Name.Length > 0 
            let region = new RegionInfo(culture.LCID) 
            where String.Equals(region.ISOCurrencySymbol, "EUR", StringComparison.InvariantCultureIgnoreCase) 
            select region).First(); 

string currencySymbol = regionInfo.CurrencySymbol; 
+0

¿Qué paso para bitcoin? – Henrik

3

Se puede ejecutar a través de todas las culturas hasta que se encuentre una coincidencia:

public string GetCurrencySymbolFromAbbreviation(string abbreviation) 
{ 
    foreach (CultureInfo nfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) 
    { 
     RegionInfo region = new RegionInfo(nfo.LCID); 
     if (region.ISOCurrencySymbol == abbreviation) 
     { 
      return region.CurrencySymbol; 
     } 
    } 
    return null; 
} 
0

La forma más sencilla es, puede utilizar Base de datos con nombre de moneda, símbolo de moneda. Cuando seleccione Nombre de moneda, seleccionará automáticamente el Símbolo de moneda y podrá usarlo.