# Program to reverse an array with given no of elements and remains as same

In this article we will see how to reverse an array with given on of elements for the starting and remaining elements as its same position, suppose we have given this array {1,2,3,4,5,6,7,8} and number of elements to be reverse is 4 then output should be {4,3,2,1,5,6,7,8}.

Another example :
Array to be reverse
{ 23, 55, 22, 68, 90} no to be reverse 3
{"three", "two", "one", "four", "five"} no of elements to be reverse 3

Output :
reversed array
{22, 55, 23, 68, 90}
{"one", "two", "three", "four", "five"}

## reverse an array with given no of element and remaining element as same - for loop

int[] reverseArrayWithGivenIndex(int noOfElementToBeReverse,int [] origArray)
{
int[] resultArray = new int[origArray.Length];

for (int i = noOfElementToBeReverse - 1; i >= 0; i--)
resultArray[noOfElementToBeReverse - 1 - i] = origArray[i];

for (int i = noOfElementToBeReverse; i < origArray.Length; i++)
resultArray[i] = origArray[i];

return resultArray;

}

## reverse an array to given index and remaining element as same - linq, extension method

int[] reverseArrayWithGivenIndex(int noOfElementToBeReverse, int[] origArray)
{
return origArray.Take(noOfElementToBeReverse).Reverse().Concat(origArray.Skip(noOfElementToBeReverse)).ToArray();

}

## Calling of method -

int[] origArray = { 1, 2, 3, 4, 5, 6, 7, 8 };
int[] reversedArray = reverseArrayWithGivenIndex(4, origArray);