Удвоение в массиве всех вхождений элементов, расположенных на четных(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));
}
}