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

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

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

Приветствую, вот хотел бы просить что собственно делает array.Resize? как я понял эта функция копирует старый массив(не удаляя элементов) и увеличивает его длину, но у меня почему то он как будто создает новый массив с новым размером. кидаю код и надеюсь вы мне поможете.
Листинг программы
  1. class Program
  2. {
  3. public static string[] array = new string[2]; // объявляем массив
  4. static void Main(string[] args)
  5. {
  6. Switch();
  7. Console.ReadLine();
  8. }
  9. public static void ShowIndex() // смотрим на все элементы массива
  10. {
  11. for (int i = 0; i < array.Length; i++)
  12. {
  13. Console.WriteLine(" [{0}] : {1}", i, array[i]);
  14. }
  15. Console.WriteLine("");
  16. Console.WriteLine();
  17. Console.WriteLine($" LENGHT: {array.Length}");
  18. Console.WriteLine("----------------------");
  19. Switch();
  20. }
  21. public static void Write() // функция где записываем элементы в массив
  22. {
  23. Console.WriteLine(" Write: ");
  24. for (int i = 0; i < array.Length; i++)
  25. {
  26. array[i] = Console.ReadLine();
  27. }
  28. Array.Resize(ref array, array.Length * 2); // array.resize
  29. Switch();
  30. }
  31. public static void Switch()
  32. {
  33. Console.WriteLine("Your choise? 1 - Add, 2 - Delete, 3 - Show All");
  34. string result = Console.ReadLine();
  35. switch (Convert.ToInt32(result))
  36. {
  37. case 1:
  38. Write();
  39. break;
  40. case 2:
  41. break;
  42. case 3:
  43. ShowIndex();
  44. break;
  45. default:
  46. Switch();
  47. break;
  48. }
  49. }

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

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

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


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

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

14   голосов , оценка 4.357 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы