Такую задачу обычно дают в универах, да бы студенты понимали, что вообще скрывается под словом динамический массив. Ведь массив имеет ограниченное число возможных элементов с заранее неизменяемым размером, и безгранично в него невозможно добавлять их.
То есть, к примеру, если Вы создали массив, который содержит пять элементов, то увеличить данный размер динамически Вы уже не сможете, так как он является фиксированным. В этом можно легко убедиться, воспользовавшись свойством IsFixedSize.
Так какой выход, как решить тогда поставленную задачу?
1 2 3 4 5 6 7 8 9 10 11 12 |
static void Main(string[] args) { int tmpLength = 0; int[] numbersArr = new int[5] { 1, 2, 3, 4, 5 }; tmpLength = numbersArr.Length; //5 Console.WriteLine(tmpLength); Array.Resize(ref numbersArr, numbersArr.Length + 1); tmpLength = numbersArr.Length; //6 Console.WriteLine(tmpLength); Console.ReadKey(); } |
Мы воспользовались методом Array.Resize который позволяет увеличивать динамически массив, но на самом деле он создает новый, увеличивая его размерность на одну еденицу.