.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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д