none
Array literales, como en PHP se puede en C# eje: var1['nombre']=1;

    Pregunta

  •  

    Hola soy principiante en C# y quiero saber si alguien sabe si se puede crear un array literal como en PHP

      

    [SEUDO CODIGO]

    Eje:

    //Este tipo de array se permite en C# o cual seria la alternativa

    //mas parecida a esta..?

    miArray[]['nombre']="MiNombre" ;

    miArray[]['apellido']="MiApellido" ;

     

    Desde ya estoy muy agradecido si alguien sabe la respuesta o algún link para guiarme un poco.

    Saludos

    martes, 05 de febrero de 2008 20:08

Respuestas

  •  

    no exactamente lo mas parecido son los indexers... pero como se que lo que te interesa es la funcionalidad utiliza StringDictionary el cual esta en el System.Collections.Specialized.

     

    asi puedes hacer algo como:

     

    Code Snippet

    StringDictionary s = new StringDictionary();

    s["nombre"]="MiNombre" ;

    s["apellido"]="MiApellido" ;

     

     

    Si quieres puedes tener un arreglo de StringDictionary o algo mejor algo un poco mas avanzado como crear una colleccion que implemente la interfaz IDictionary<srting, string> y un indizador para simular lo que necesitas.

     

    martes, 05 de febrero de 2008 20:41
    Moderador
  •  CodigoX Escribió:

    Ahh Tambien puedo tener un array Multidimencional con StringDictionary..

     

    EJE:

    s["nombre"][]="PrimerNombre";

    s["nombre"][]="SegundoNombre";

    s["apellido"]="Apellido"

     

    Como seria la manera correcta..?

     

    La implementacion de lo mas parecido a lo que necesitas es esta:

     

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.Collections.Specialized;

    namespace StringDictionaryMatrix

    {

    class Program

    {

    static void Main(string[] args)

    {

    Dictionary<string, StringDictionary> dic = new Dictionary<string, StringDictionary>();

    dic["fila1"]["columna1"] = "Fila 1 con columna 1";

    dic["fila1"]["columna2"] = "Fila 1 con columna 2";

    dic["fila1"]["columna3"] = "Fila 1 con columna 3";

    dic["fila2"]["columna1"] = "Fila 2 con columna 1";

    dic["fila2"]["columna2"] = "Fila 2 con columna 2";

    dic["fila2"]["columna3"] = "Fila 2 con columna 3";

    dic["fila3"]["columna1"] = "Fila 3 con columna 1";

    dic["fila3"]["columna2"] = "Fila 3 con columna 2";

    dic["fila3"]["columna3"] = "Fila 3 con columna 3";

    }

    }

    }

     

     

miércoles, 06 de febrero de 2008 3:03
Moderador

Todas las respuestas

  •  

    no exactamente lo mas parecido son los indexers... pero como se que lo que te interesa es la funcionalidad utiliza StringDictionary el cual esta en el System.Collections.Specialized.

     

    asi puedes hacer algo como:

     

    Code Snippet

    StringDictionary s = new StringDictionary();

    s["nombre"]="MiNombre" ;

    s["apellido"]="MiApellido" ;

     

     

    Si quieres puedes tener un arreglo de StringDictionary o algo mejor algo un poco mas avanzado como crear una colleccion que implemente la interfaz IDictionary<srting, string> y un indizador para simular lo que necesitas.

     

    martes, 05 de febrero de 2008 20:41
    Moderador
  • Muchas Gracias Juan Carlos..

    Esto es muy similar a la que busco... ;-)

    También no tendría la misma alternativa con HashTable..?

    Cual es la diferencia entre StringDictionary y HashTable..?

    Cual tiene mejor performan..?

    Cual es la otro alternativa que me comentas con IDictionary<srting, string> me podría pasar un ejemplo..? Tiene mejor performan..?

     

    Ahhh.. StringDictionary, HashTable, ArrayList, etc.. Solo están disponible del NET 2.0 o superior no..?

    en el 1.0 o 1.1 no están, no..?

     

     

    StringDictionary aumenta la capacidad automáticamente..?

    Por ejemplo si yo mas adelante en el código, le agrego que guarde s["edad"]=26 no tengo problema no; porque el Array incremente la memoria reservada no..?

     

    Saludos y gracias de nuevo..

     

    miércoles, 06 de febrero de 2008 0:46
  • Ahh Tambien puedo tener un array Multidimencional con StringDictionary..

     

    EJE:

    s["nombre"][]="PrimerNombre";

    s["nombre"][]="SegundoNombre";

    s["apellido"]="Apellido"

     

    Como seria la manera correcta..?

    miércoles, 06 de febrero de 2008 1:49
  •  CodigoX Escribió:

    Muchas Gracias Juan Carlos..

    Esto es muy similar a la que busco... ;-)

    También no tendría la misma alternativa con HashTable..?

    No, un hashtable hace lo mismo pero con solo tipos object por lo cual es mas lento pues te la apsarias haciendo casting para obtener las cadenas...

     

    Code Snippet
    Cual es la diferencia entre StringDictionary y HashTable..?

     

     

    La primera es especializada para trajar con cadenas asi que no hace boxing ni casting por lo cual es mas eficiente...

     

    StringDictionary lo encuentras en System.Collections.Specialized.

     

    Cual tiene mejor performan..?
      again... StringDictionary .

     

    Cual es la otro alternativa que me comentas con IDictionary me podría pasar un ejemplo..? Tiene mejor performan..?

     

    se dice performance.  la alternativa de hacer una coleccion propia con IDictionary requerira m,ucho mas trabajo de tu parte...descartala por el momento.

     

    Ahhh.. StringDictionary, HashTable, ArrayList, etc.. Solo están disponible del NET 2.0 o superior no..?

    en el 1.0 o 1.1 no están, no..?

    no... esas estan desde framework 1.0

    http://msdn2.microsoft.com/en-us/library/system.collections.specialized.stringdictionary.aspx

     

    StringDictionary aumenta la capacidad automáticamente..?

    Todas las colecciones lo hacen.

    miércoles, 06 de febrero de 2008 2:57
    Moderador
  •  CodigoX Escribió:

    Ahh Tambien puedo tener un array Multidimencional con StringDictionary..

     

    EJE:

    s["nombre"][]="PrimerNombre";

    s["nombre"][]="SegundoNombre";

    s["apellido"]="Apellido"

     

    Como seria la manera correcta..?

     

    La implementacion de lo mas parecido a lo que necesitas es esta:

     

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.Collections.Specialized;

    namespace StringDictionaryMatrix

    {

    class Program

    {

    static void Main(string[] args)

    {

    Dictionary<string, StringDictionary> dic = new Dictionary<string, StringDictionary>();

    dic["fila1"]["columna1"] = "Fila 1 con columna 1";

    dic["fila1"]["columna2"] = "Fila 1 con columna 2";

    dic["fila1"]["columna3"] = "Fila 1 con columna 3";

    dic["fila2"]["columna1"] = "Fila 2 con columna 1";

    dic["fila2"]["columna2"] = "Fila 2 con columna 2";

    dic["fila2"]["columna3"] = "Fila 2 con columna 3";

    dic["fila3"]["columna1"] = "Fila 3 con columna 1";

    dic["fila3"]["columna2"] = "Fila 3 con columna 2";

    dic["fila3"]["columna3"] = "Fila 3 con columna 3";

    }

    }

    }

     

     

miércoles, 06 de febrero de 2008 3:03
Moderador
  • mm creo que tengo problemas de chaché con mi isp... no veo nada lo que escribo (prueba)

    miércoles, 06 de febrero de 2008 13:34
    Moderador