Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos() - C#

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

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

Помогите, не знаю, как запилить прогу Задание Удвоение в массиве всех вхождений элементов, расположенных на четных (0-четное) позициях (DublicateOnEvenPos()). Массив
namespace DynamicTypes
{
    class DynamicArray<T>
    {
        /// <summary>
        /// Закрытый массив, в котором храним данные
        /// </summary>
        T[] array;
 
        /// <summary>
        /// Свойство, показывающее размер массива в памяти
        /// </summary>
        public int Capacity 
        { 
            get 
            { 
                return array.Length; 
            } 
        }
        
        /// <summary>
        /// Свойство, показывающее число фактически используемых элементов
        /// </summary>
        public int Count { get; private set; }
 
        /// <summary>
        /// Конструктор по умолчанию, создающий массив из 4-х элементов
        /// </summary>
        public DynamicArray()
        {
            array = new T[4];
            Count = 0;
        }
        
        /// <summary>
        /// Метод добавления элемента
        /// </summary>
        /// <param name="item">добавляемый элемент</param>
        public void Add(T item)
        {
            // если дошли до конца массива
            if (Count == Capacity)
            {
                // создаем временный массив в 2 раза большего размера
                T[] tmp = new T[Capacity * 2];
 
                // копируем в него исходный массив
                for (int i = 0; i < Count; i++)
                {
                    tmp[i] = array[i];
                }
 
                // переставляем ссылки (память старого массива будет позднее собрана сборщиком
                // мусора)
                array = tmp;
            }
 
            // добавляем элемент в конец массива
            array[Count] = item;
            Count++;
        }
        
        /// <summary>
        /// Свойство-индексатор для получения доступа к элементам массива
        /// </summary>
        /// <param name="n">порядковый номер элемента, с которым будет выполняться
        /// действие</param>
        public T this[int n]
        {
            get 
            {
                // контроллируем выход за логическую границу массива. Выход за фактическую 
                // границу (n < 0) or (n >= array.Length) контроллирует среда выполнения
                if (n >= Count)
                    throw new IndexOutOfRangeException("Выход за границу массива");
                
                return array[n];
            }
            set 
            {
                if (n >= Count)
                    throw new IndexOutOfRangeException("Выход за границу массива");
 
                array[n] = value;
            }
        }
    }
}

Решение задачи: «Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos()»

textual
Листинг программы
using System;
using System.Linq;
 
class Program
{
    public static void Main()
    {
        int[] a = new int[] { 1, 2, 3, 4, 5 };
        int[] b = a.SelectMany((x, i) => Enumerable.Repeat(x, 2 - i % 2)).ToArray();
        Console.WriteLine(String.Join(", ", b));
    }
}

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


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

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

12   голосов , оценка 3.833 из 5
Похожие ответы