O'Reilly logo

C# Cookbook by Jay Hilyard, Stephen Teilhet

Stay ahead with the world's most comprehensive technology and business learning platform.

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

Start Free Trial

No credit card required

9.3. Reversing a Two-Dimensional Array

Problem

You need to reverse each row in a two-dimensional array. The Array.Reverse method does not support this.

Solution

Use two loops; one to iterate over rows, the other to iterate over columns:

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

Discussion

The following TestReverse2DimArray method shows how the Reverse2DimArray method is used:

public static void TestReverse2DimArray( )
{
    int[,] someArray = 
      new int[5,3] {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}};

    // Display the original array
    foreach (int i in someArray)
    {
        Console.WriteLine(i);
    }
    Console.WriteLine( );

    Reverse2DimArray(someArray);

    // Display the reversed array
    foreach (int i in someArray)
    {
        Console.WriteLine(i);
    }
}

This method displays the following:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

3     Note that each row of 3 elements are reversed
2
1
6     This is the start of the next row
5
4
9
8
7
12
11
10
15
14
13

The Reverse2DimArray method uses the same logic presented in the previous recipe to reverse the array; however, a nested for loop is used instead of a single for loop. The outer for loop iterates over each ...

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

Start Free Trial

No credit card required