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 ←
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.