1

Тема: Вставка нового елементу до масиву

Потрібно внести до існуючого массиву в початок значення, де інші значення повинні бути здвинуті на 1.

Я зробив фун-ю, яка вставляє на перший елемент массиву значення, але минуле нове значення займає місце старого [0] елементу.


int[] _array;

        public int[] array {
            get { return _array;  }
            set { _array = value; }
        }

public void Shift(int value) {
            Array.Resize(ref this._array, this.array.Length + 1);
            for (int counter = this.array.Length; this.array.Length < counter; counter--) {
                this.array[counter] = this.array[counter - 1];
            }

            array[0] = value;
        }

2 Востаннє редагувалося Engineer (04.12.2020 10:34:41)

Re: Вставка нового елементу до масиву

У вас логічна помилка в умові циклу

for (int counter = this.array.Length; this.array.Length < counter; counter--)

Цей цикл взагалі не буде працювати бо умова this.array.Length < counter не виконується на самому початку і взагалі вона немає смислу
має бути так

for (int counter = this.array.Length - 1; counter > 0; counter--)

this.array.Length - 1 це індекс останнього елементу масиву. І він на 1 менший за довжину масиву бо в С# нумерація елементів розпочинається з нуля

Подякували: laketych1