.NET 4.x Увеличить размер массива не удаляя элементы? - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую, вот хотел бы просить что собственно делает array.Resize? как я понял эта функция копирует старый массив(не удаляя элементов) и увеличивает его длину, но у меня почему то он как будто создает новый массив с новым размером. кидаю код и надеюсь вы мне поможете.
    class Program
    {
        public static string[] array = new string[2]; // объявляем массив
 
        static void Main(string[] args)
        {
            Switch();
 
            Console.ReadLine();
        }
 
        public static void ShowIndex() // смотрим на все элементы массива
        {
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("   [{0}] : {1}", i, array[i]);
            }
            Console.WriteLine("");
 
            Console.WriteLine();
            Console.WriteLine($"   LENGHT: {array.Length}");
            Console.WriteLine("----------------------");
 
            Switch();
        }
 
        public static void Write() // функция где записываем элементы в массив
        {
 
            Console.WriteLine(" Write: ");
 
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = Console.ReadLine();
            }
            Array.Resize(ref array, array.Length * 2); // array.resize
 
            Switch();
 
        }
 
        public static void Switch()
        {
            Console.WriteLine("Your choise? 1 - Add, 2 - Delete, 3 - Show All");
            string result = Console.ReadLine();
 
            switch (Convert.ToInt32(result))
            {
                case 1:
                    Write();
                    break;
                case 2:
 
                    break;
 
                case 3:
                    ShowIndex();
                    break;
                default:
                    Switch();
                    break;
 
            }
        }

Решение задачи: «.NET 4.x Увеличить размер массива не удаляя элементы?»

textual
Листинг программы
        static int oldLength;
 
        public static void Write() // функция где записываем элементы в массив
        {
            Console.WriteLine(" Write: ");
            for (int i = oldLength; i < array.Length; i++)
            {
                array[i] = Console.ReadLine();
            }
            oldLength = array.Length;
            Array.Resize(ref array, array.Length * 2); // array.resize
 
            Switch();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5
Похожие ответы