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