## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# 9.4. Reversing a Jagged Array

## Problem

The `Array.Reverse` method does not provide a way to reverse each subarray in a jagged array. You need this functionality.

## Solution

Use the `ReverseJaggedArray` method:

```public static void ReverseJaggedArray(int[][] theArray)
{
for (int rowIndex = 0;
rowIndex <= (theArray.GetUpperBound(0)); rowIndex++)
{
for (int colIndex = 0;
colIndex <= (theArray[rowIndex].GetUpperBound(0) / 2);
colIndex++)
{
int tempHolder = theArray[rowIndex][colIndex];
theArray[rowIndex][colIndex] =
theArray[rowIndex][theArray[rowIndex].GetUpperBound(0) -
colIndex];
theArray[rowIndex][theArray[rowIndex].GetUpperBound(0) -
colIndex] =  tempHolder;
}
}
}```

## Discussion

The following `TestReverseJaggedArray` method shows how the `ReverseJaggedArray` method is used:

```public static void TestReverseJaggedArray( )
{
int[][] someArray =
new int[][] {new int[3] {1,2,3}, new int[6]{10,11,12,13,14,15}};

// Display the original array
for (int rowIndex = 0; rowIndex < someArray.Length; rowIndex++)
{
for (int colIndex = 0;
colIndex < someArray[rowIndex].Length; colIndex++)
{
Console.WriteLine(someArray[rowIndex][colIndex]);
}
}
Console.WriteLine( );

ReverseJaggedArray(someArray);

// Display the reversed array
for (int rowIndex = 0; rowIndex < someArray.Length; rowIndex++)
{
for (int colIndex = 0;
colIndex < someArray[rowIndex].Length; colIndex++)
{
Console.WriteLine(someArray[rowIndex][colIndex]);
}
}
}```

This method displays the following:

```1
2
3
10
11
12
13
14
15

3    ← The first reversed subarray
2
1
15   ←```

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required