C# Remove Multiple Elements from ArrayList – Efficient Methods

An array list represents an ordered collection of objects that can be indexed individually. It’s basically an alternative to arrays. It also allows to dynamically allocate memory, add, search and sort items in the list. ArrayList. The RemoveRange(Int32, Int32) method is used to remove a series of elements from the ArrayList.

Properties of the ArrayList class:

  • Elements can be added or removed from an array list collection at any time.
  • Sorting of the ArrayList is not guaranteed.
  • The capacity of an ArrayList is the number of elements that an ArrayList can hold.
  • You can use an integer index to access the elements in this collection. The indexes in this collection start from scratch.
  • It also allows for duplicate elements.
  • Using multidimensional arrays as elements in an ArrayList collection is not supported.

The syntax is as follows:

public virtual void RemoveRange (int index, int count);

Parameter:

index: It is the zero-starting index of the range of elements to be removed. count: This is the number of elements to be removed.

Exceptions:

  • ArgumentOutOfRangeException: If the index is less than zero or the count is less than zero.
  • ArgumentException: If the index and count do not represent a valid range of elements in the ArrayList.
  • NotSupportedException: If the ArrayList is read-only or the ArrayList has a fixed size.

Note: This method is an O(n) operation, where n is Count.

The following procedure describes the ArrayList.RemoveRange(Int32, Int32) method:

Example 1:

//C# code to remove a range of
//elements from the ArrayList
using System;
using System.Collections;
using System.Collections.Generic;
  
class GFG {
  
     //Driver code
     public static void Main()
     {
  
         //Creating an ArrayList
         ArrayList myList = new ArrayList(10);
  
         //Adding elements to ArrayList
         myList.Add( "A" );
         myList.Add( "B" );
         myList.Add( "C" );
         myList.Add( "D" );
         myList.Add( "E" );
         myList.Add( "F" );
         myList.Add( "G" );
         myList.Add( "H" );
         myList.Add( "I" );
         myList.Add( "J" );
  
         //Displaying the elements in ArrayList
         Console.WriteLine( "The initial ArrayList is: " );
  
         foreach ( string str in myList)
         {
             Console.WriteLine(str);
         }
  
         //removing 2 elements starting from index 2
         myList.RemoveRange(2, 2);
  
         //Displaying the modified ArrayList
         Console.WriteLine( "The ArrayList after Removing elements: " );
  
         //Displaying the elements in ArrayList
         foreach ( string str in myList)
         {
             Console.WriteLine(str);
         }
     }
}

The output is as follows:

The initial ArrayList is: 
A
B
C
D
E
F
G
H
I
J
The ArrayList after Removing elements: 
A
B
E
F
G
H
I
J

Example 2:

//C# code to remove a range of
//elements from the ArrayList
using System;
using System.Collections;
using System.Collections.Generic;
  
class GFG {
  
     //Driver code
     public static void Main()
     {
  
         //Creating an ArrayList
         ArrayList myList = new ArrayList(10);
  
         //Adding elements to ArrayList
         myList.Add(2);
         myList.Add(4);
         myList.Add(6);
         myList.Add(8);
         myList.Add(10);
         myList.Add(12);
         myList.Add(14);
         myList.Add(16);
         myList.Add(18);
         myList.Add(20);
  
         //Displaying the elements in ArrayList
         Console.WriteLine( "The initial ArrayList: " );
  
         foreach ( int i in myList)
         {
             Console.WriteLine(i);
         }
  
         //removing 4 elements starting from index 0
         myList.RemoveRange(0, 4);
  
         //Displaying the modified ArrayList
         Console.WriteLine( "The ArrayList after Removing elements: " );
  
         //Displaying the elements in ArrayList
         foreach ( int i in myList)
         {
             Console.WriteLine(i);
         }
     }
}

The output is as follows:

The initial ArrayList is: 
2
4
6
8
10
12
14
16
18
20
The ArrayList after Removing elements: 
10
12
14
16
18
20