none
Añadir nuevos elementos en un array RRS feed

  • Pregunta

  • Buenas:

    Aquí un ejemplo de cambiar el tamaño de un array.

    using System;
    
    namespace Cambiar_tamaño_array_consola_02_cs
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Título de la ventana.
                Console.Title = "Tamaño del array";
    
                // Residemensiona pantalla. X = 20, Y = 5.
                Console.SetWindowSize(68, 36); 
    
                // Crea e inicializa una nueva matriz de cadenas.
                String[] miArray = {"Hola", "mi", "muy", "distinguido", "amigo.",
                "¿Cómo", "estás", "por", "aquí?"};
    
                // Muestra los valores de la matriz.
                Console.WriteLine(
                    "La matriz de cadenas contiene inicialmente los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más grande (cinco elementos más grandes).
                Array.Resize(ref miArray, miArray.Length + 5);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más grande,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más pequeño (cuatro elementos).
                Array.Resize(ref miArray, 4);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más pequeño,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Pulse cualquier tecla para salir.
                Console.ReadKey();
            }
    
            public static void MostrarIndicesYValores(String[] miArray)
            {
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.WriteLine("   [{0}] : {1}", i, miArray[i]);
                }
                Console.WriteLine();
            }
        }
    }

    Resultado:

    Como se puede ver abajo dentro del array, la parte cuando crece, está todo a null o vacío.

    Ahora, llegado hasta aquí. Quiero añadir esto:
    En la posición [10] la palabra SALUDOS, así, en mayúsculas, tal como se ve.

    En la posición [12] ÁRBOL.

    Si es posible hacerlo.

    ¿Cómo se hace?

    Saludos.


    http://electronica-pic.blogspot.com


    • Editado Metaconta lunes, 27 de julio de 2020 16:51
    lunes, 27 de julio de 2020 15:35

Respuestas

  • Hola Metaconta:

    Una vez el array tienes el elemento creado, solo tienes que asignarle el literal.

      Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                miArray[10] = "SALUDOS";
                miArray[12] = "ÁRBOL";
                MostrarIndicesYValores(miArray);

    • Marcado como respuesta Metaconta lunes, 27 de julio de 2020 19:56
    lunes, 27 de julio de 2020 17:18
  • miArray[2] = null;
    /* o si prefieres un string vacio */
    miArray[2] = String.Empty;
    • Marcado como respuesta Metaconta lunes, 27 de julio de 2020 19:56
    lunes, 27 de julio de 2020 18:04

Todas las respuestas

  • Hola Metaconta:

    Una vez el array tienes el elemento creado, solo tienes que asignarle el literal.

      Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                miArray[10] = "SALUDOS";
                miArray[12] = "ÁRBOL";
                MostrarIndicesYValores(miArray);

    • Marcado como respuesta Metaconta lunes, 27 de julio de 2020 19:56
    lunes, 27 de julio de 2020 17:18
  • Sí, funciona.

    using System;
    
    namespace Cambiar_tamaño_array_consola_02_cs
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Título de la ventana.
                Console.Title = "Tamaño del array";
    
                // Residemensiona pantalla. X = 20, Y = 5.
                Console.SetWindowSize(68, 36); 
    
                // Crea e inicializa una nueva matriz de cadenas.
                string[] miArray = {"Hola", "mi", "muy", "distinguido", "amigo.", "¿Cómo", "estás", "por", "aquí?"};
    
                // Muestra los valores de la matriz.
                Console.WriteLine(
                    "La matriz de cadenas contiene inicialmente los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más grande (cinco elementos más grandes).
                Array.Resize(ref miArray, miArray.Length + 5);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más grande,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más pequeño (cuatro elementos).
                Array.Resize(ref miArray, 4);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más pequeño,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Pulse cualquier tecla para continuar.
                Console.ReadKey();
    
                // Limpiar pantalla.
                Console.Clear();
    
                // Añado diez más del array que ya está por cuatro posiciones.
                Console.WriteLine("Vuelvo agrandar la matriz:");
                Array.Resize(ref miArray, miArray.Length + 10);
                MostrarIndicesYValores(miArray);
    
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                miArray[10] = "SALUDOS";
                miArray[12] = "ÁRBOL";
                MostrarIndicesYValores(miArray);
    
                // Pulse cualquier tecla para salir.
                Console.ReadKey();
            }
    
            public static void MostrarIndicesYValores(String[] miArray)
            {
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.WriteLine("   [{0}] : {1}", i, miArray[i]);
                }
                Console.WriteLine();
            }
        }
    }

    ¿Cómo quito la posición [2] que contiene muy a null?

    Saludos.


    http://electronica-pic.blogspot.com

    lunes, 27 de julio de 2020 17:41
  • miArray[2] = null;
    /* o si prefieres un string vacio */
    miArray[2] = String.Empty;
    • Marcado como respuesta Metaconta lunes, 27 de julio de 2020 19:56
    lunes, 27 de julio de 2020 18:04
  • ¿Qué se diferencía exactamente entre una y otra?

    Dejo un ejemplo ya completo por si alguien lo necesita.

    using System;
    using System.Threading;
    
    namespace Cambiar_tamaño_array_consola_02_cs
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Título de la ventana.
                Console.Title = "Tamaño del array";
    
                // Residemensiona pantalla. X = 20, Y = 5.
                Console.SetWindowSize(68, 36); 
    
                // Crea e inicializa una nueva matriz de cadenas.
                string[] miArray = {"Hola", "mi", "muy", "distinguido", "amigo.", "¿Cómo", "estás", "por", "aquí?"};
                #region Página 1.
                // Muestra los valores de la matriz.
                Console.WriteLine(
                    "La matriz de cadenas contiene inicialmente los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más grande (cinco elementos más grandes).
                Array.Resize(ref miArray, miArray.Length + 5);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más grande,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
    
                // Cambiar el tamaño de la matriz a un tamaño más pequeño (cuatro elementos).
                Array.Resize(ref miArray, 4);
    
                // Muestra los valores de la matriz.
                Console.WriteLine("Después de cambiar el tamaño a un tamaño más pequeño,");
                Console.WriteLine("la matriz de cadenas contiene los siguientes valores:");
                MostrarIndicesYValores(miArray);
                Console.Write("Página 1 / 4");
                #endregion
    
                #region Página 2.
                // Pulse cualquier tecla para continuar.
                Console.ReadKey();
    
                // Cambiar color de fondo gris.
                Console.BackgroundColor = ConsoleColor.Gray;
    
                // Letras negras.
                Console.ForegroundColor = ConsoleColor.Black;
    
                // Limpiar pantalla.
                Console.Clear();
    
                // Añado diez más del array que ya está por cuatro posiciones.
                Console.WriteLine("Vuelvo agrandar la matriz:");
                Array.Resize(ref miArray, miArray.Length + 10); // 10 posiciones más.
                MostrarIndicesYValores(miArray);
    
                Console.WriteLine("Añado SALUDOS y ÁRBOL en las direcciones indicadas.");
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                miArray[10] = "SALUDOS";
                miArray[12] = "ÁRBOL";
                MostrarIndicesYValores(miArray);
                Console.Write("Página 2 / 4");
                #endregion
    
                #region Página 3.
                // Pulse cualquier tecla para continuar.
                Console.ReadKey();
    
                // Cambiar color de fondo verde.
                Console.BackgroundColor = ConsoleColor.Green;
    
                // Letras negras.
                Console.ForegroundColor = ConsoleColor.Black;
    
                // Limpiar pantalla.
                Console.Clear();
    
                Console.WriteLine("Pongo \"null\" a muy de la dirección [2]");
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                miArray[2] = null;
                MostrarIndicesYValores(miArray);
    
                Console.WriteLine("Pongo \"string.Empty\" a muy de la dirección [12]");
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                miArray[12] = string.Empty;
                MostrarIndicesYValores(miArray);
                Console.Write("Página 3 / 4");
                #endregion
    
                #region Página 4.
                // Pulse cualquier tecla para continuar.
                Console.ReadKey();
    
                // Cambiar color de fondo azul.
                Console.BackgroundColor = ConsoleColor.Blue;
    
                // Letras blancas.
                Console.ForegroundColor = ConsoleColor.White;
    
                // Limpiar pantalla.
                Console.Clear();
    
                // Cambiar el tamaño de la matriz a un tamaño más pequeño (cuatro elementos).
                Array.Resize(ref miArray, 4);
    
                Console.WriteLine("La matriz se borra completamente a parte de reducirlo a cuatro.");
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                // Borrar contenido array.
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.WriteLine("   [{0}] : {1}", i, miArray[i] = null);
                }
    
                Console.WriteLine("Añadiendo nuevos valores.");
                Console.WriteLine("La matriz de cadenas contiene los siguientes valores:");
                miArray[0] = "HASTA";
                miArray[1] = "LUEGO";
                miArray[2] = "COCODRILO";
                miArray[3] = ".";
                MostrarIndicesYValores(miArray);
    
                Console.WriteLine();
                Console.WriteLine("Textos en líneas.");
                
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.Write(miArray[i].ToString() + " ");
                }
    
                Console.WriteLine();
                Console.Write("Página 4 / 4");
                #endregion
    
                // Pulse cualquier tecla para salir.
                Console.ReadKey();
            }
    
            public static void MostrarIndicesYValores(String[] miArray)
            {
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.WriteLine("   [{0}] : {1}", i, miArray[i]);
                    Thread.Sleep(50); // 0.05 segundos.
                }
                Console.WriteLine();
            }
        }
    }


    http://electronica-pic.blogspot.com



    • Editado Metaconta lunes, 27 de julio de 2020 21:07
    lunes, 27 de julio de 2020 19:50
  • Hola, 

    Gracias por confirmar que se ha encontrado una solución a la consulta realizadaDebido a elloeste hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

     

    Eric Ruiz

    ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    martes, 28 de julio de 2020 13:16
    Moderador