private static void Main(string[] args)
{
int position = -1;
//Arrays
int[] numbers = new[] {1, 5, 2, 3, 6, 7};
//add elements in to array
Console.WriteLine("Size of array is {0}", numbers.Length);
//Add element at the end of the array
//1. Resize it
//2. Add the number at the last number
Array.Resize(ref numbers, numbers.Length + 1);
numbers[numbers.Length - 1] = 9;
//print it
Console.WriteLine("New Element is {0}", numbers[numbers.Length - 1]);
foreach (var num in numbers)
{
Console.WriteLine(num);
}
//add an element at nth Position
position = 5;
AddElementAtPosition(ref numbers, position, 18);
Console.WriteLine("\n");
Console.WriteLine("New Element added at position {0} is {1}", position, numbers[1]);
foreach (var num in numbers)
{
Console.WriteLine(num);
}
Console.ReadKey();
}
/// <summary>
/// Add element at nth position in array
/// </summary>
/// <param name="numbers">Source Array</param>
/// <param name="position">Position Number</param>
/// <param name="valueToEnter">the value to be entered</param>
private static void AddElementAtPosition(ref int[] numbers, int position, int valueToEnter)
{
//index at which item has to be added
var index0 = position - 1;
//first resize it
Array.Resize(ref numbers, numbers.Length + 1);
int orginalLength = numbers.Length;
//clone the array
int[] cloneArray = (int[]) numbers.Clone();
for (int i = 0; i < orginalLength - 1; i++)
{
if (i == index0)
{
//copy element from the position
var element = numbers[index0];
cloneArray[index0] = valueToEnter;
cloneArray[position] = element;
}
else if (i > index0)
{
cloneArray[i + 1] = numbers[i];
}
else
{
cloneArray[i] = numbers[i];
}
}
//reclone and ret
numbers = (int[]) cloneArray.Clone();
}The following snippet can be used to add an element either at the end of the array or at any given position in an array.
