none
¿Se puede cambiar el tamaño de un array una vez creado? RRS feed

  • Pregunta

  • Hola:

    Mirando aquí.

    Resize.

    Unos dicen que no se puede cambiar de array una vez creado. Lo que hace Resize es una especie que lo pone en otro array.

    using System;

    namespace Cambiar_tamaño_array_consola_01_cs
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Título de la ventana.
                Console.Title = "Tamaño del array";

                // 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:");
                PrintIndexAndValues(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:");
                PrintIndexAndValues(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:");
                PrintIndexAndValues(miArray);

                // Pulse cualquier tecla para salir.
                Console.ReadKey();
            }

            public static void PrintIndexAndValues(String[] miArray)
            {
                for (int i = 0; i < miArray.Length; i++)
                {
                    Console.WriteLine("   [{0}] : {1}", i, miArray[i]);
                }
                Console.WriteLine();
            }
        }
    }
    Salida:

    ¿Qué opinas?

    Saludos.


    http://electronica-pic.blogspot.com



    • Editado Metaconta domingo, 12 de julio de 2020 13:28
    domingo, 12 de julio de 2020 13:11

Respuestas

Todas las respuestas

  • Deleted
    • Marcado como respuesta Metaconta domingo, 12 de julio de 2020 15:58
    domingo, 12 de julio de 2020 13:33
  • Por lo qu ecuentas, no se puede ampliar un array ya creado. En C++ si se puede. Java no se puede.

    http://electronica-pic.blogspot.com

    domingo, 12 de julio de 2020 15:59
  • Hola Metaconta,

    gracias por confirmar que encontraste una respuesta a tu pregunta.

     

    Saludos cordiales

     

    Gabriel Castro

    lunes, 13 de julio de 2020 12:20
    Moderador
  • Por lo que cuento, si se puede. Se llama Resize, realloc... el procedimiento es el mismo.

    Si el manager encuentra el espacio, es posible que el nuevo objeto ocupe, en parte, la memoria del viejo.

    ¿Es posible?

    ¿Resize y realloc es lo mismo?

    ¿Se puede o no ampliar o disminuiar un array?

    Que sea real, no un intento de ampliar y que realmente no lo sea.


    http://electronica-pic.blogspot.com

    lunes, 13 de julio de 2020 16:07