Open In App

C# | Reverse the order of the elements in the entire List or in the specified range

Improve
Improve
Like Article
Like
Save
Share
Report

List<T>.Reverse Method is used to reverse the order of the elements in the List<T> or a portion of it. There are two methods in the overload list of List<T>.Reverse Method as follows:

  • Reverse()
  • Reverse(Int32, Int32)

Reverse() Method

This method is used to reverse the order of the elements in the entire List<T>.

Syntax:

public void Reverse ();

Below programs illustrate the use of above discussed method:

Example 1:




// C# Program to reverse the order of
// the elements in the entire List<T>
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating an List<T> of Integers
        List<int> firstlist = new List<int>();
  
        // Adding elements to List
        for (int i = 1; i <= 5; i++) {
            firstlist.Add(i);
        }
  
        Console.WriteLine("Elements Present in List:");
  
        // Displaying the elements of List
        foreach(int k in firstlist)
        {
            Console.WriteLine(k);
        }
  
        Console.WriteLine(" ");
  
        Console.WriteLine("After Reversing: ");
  
        // using method Reverse()
        firstlist.Reverse();
  
        // Displaying the elements of List
        foreach(int k in firstlist)
        {
            Console.WriteLine(k);
        }
    }
}


Output:

Elements Present in List:
1
2
3
4
5
 
After Reversing: 
5
4
3
2
1

Example 2:




// C# Program to reverse the order of
// the elements in the entire List<T>
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating an List<T> of Integers
        List<string> firstlist = new List<string>();
  
        // Adding elements to List
        firstlist.Add("Geeks");
        firstlist.Add("C#");
        firstlist.Add("Java");
        firstlist.Add("C++");
  
        Console.WriteLine("Elements Present in List:");
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
  
        Console.WriteLine(" ");
  
        Console.WriteLine("After Reversing: ");
  
        // using method Reverse()
        firstlist.Reverse();
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
    }
}


Output:

Elements Present in List:
Geeks
C#
Java
C++
 
After Reversing: 
C++
Java
C#
Geeks

Reverse(Int32, Int32) Method

This method is used to reverse the order of the elements in the specified range.

Syntax:

public void Reverse (int index, int count);

Parameters:

index: It is the zero-based starting index of the range which is to be reversed.

count: It is the number of elements in the range which is to be reversed.

Exceptions:

  • ArgumentOutOfRangeException: If the index or count is less than zero.
  • ArgumentException: If the index and count do not denote a valid range of elements in the List<T>.

Below programs illustrate the use of above discussed method:

Example 1:




// C# Program to reverse the order of
// sub range in the List<T>
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating an List<T> of Integers
        List<string> firstlist = new List<string>();
  
        // Adding elements to List
        firstlist.Add("1st");
        firstlist.Add("2nd");
        firstlist.Add("3rd");
        firstlist.Add("4th");
        firstlist.Add("5th");
        firstlist.Add("6th");
        firstlist.Add("7th");
  
        Console.WriteLine("Elements Present in List:");
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
  
        Console.WriteLine(" ");
  
        Console.WriteLine("After Reversing: ");
  
        // Reversing the sub-range
        // that starts from index 2
        // i.e 3rd element, and
        // count is 4 elements
        firstlist.Reverse(2, 4);
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
    }
}


Output:

Elements Present in List:
1st
2nd
3rd
4th
5th
6th
7th
 
After Reversing: 
1st
2nd
6th
5th
4th
3rd
7th

Example 2:




// C# Program to reverse the order of
// sub range in the List<T>
using System;
using System.Collections;
using System.Collections.Generic;
  
class Geeks {
  
    // Main Method
    public static void Main()
    {
  
        // Creating an List<T> of Integers
        List<string> firstlist = new List<string>();
  
        // Adding elements to List
        firstlist.Add("1st");
        firstlist.Add("2nd");
        firstlist.Add("3rd");
        firstlist.Add("4th");
        firstlist.Add("5th");
        firstlist.Add("6th");
        firstlist.Add("7th");
  
        Console.WriteLine("Elements Present in List:");
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
  
        Console.WriteLine(" ");
  
        Console.WriteLine("After Reversing: ");
  
        // taking negative index will give error
        firstlist.Reverse(-1, 4);
  
        // Displaying the elements of List
        foreach(string k in firstlist)
        {
            Console.WriteLine(k);
        }
    }
}


RUntimeError:

Unhandled Exception:
System.ArgumentOutOfRangeException: Non-negative number required.
Parameter name: index

Reference:



Last Updated : 10 Oct, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads