ArrayList.Remove Method
Removes the first occurrence of a specific object from the ArrayList.
[Visual Basic] Public Overridable Sub Remove( _ ByVal obj As Object _ ) Implements IList.Remove [C#] public virtual void Remove( object obj ); [C++] public: virtual void Remove( Object* obj ); [JScript] public function Remove( obj : Object );
Parameters
- obj
- The Object to remove from the ArrayList. The value can be a null reference (Nothing in Visual Basic).
Implements
Exceptions
| Exception Type | Condition |
|---|---|
| NotSupportedException | The ArrayList is read-only.
-or- The ArrayList has a fixed size. |
Remarks
This method performs a linear search; therefore, the average execution time is proportional to Count. That is, this method is an O(n) operation, where n is Count.
This method determines equality by calling Object.Equals.
In collections of contiguous elements, such as lists, the elements that follow the removed element move up to occupy the vacated spot. If the collection is indexed, the indexes of the elements that are moved are also updated. This behavior does not apply to collections where elements are conceptually grouped into buckets, such as a hashtable.
Example
The following example shows how to remove elements from the ArrayList.
[Visual Basic] Imports System Imports System.Collections Imports Microsoft.VisualBasic Public Class SamplesArrayList Public Shared Sub Main() ' Creates and initializes a new ArrayList. Dim myAL As New ArrayList() myAL.Add("The") myAL.Add("quick") myAL.Add("brown") myAL.Add("fox") myAL.Add("jumped") myAL.Add("over") myAL.Add("the") myAL.Add("lazy") myAL.Add("dog") ' Displays the ArrayList. Console.WriteLine("The ArrayList initially contains the following:") PrintValues(myAL) ' Removes the element containing "lazy". myAL.Remove("lazy") ' Displays the current state of the ArrayList. Console.WriteLine("After removing ""lazy"":") PrintValues(myAL) ' Removes the element at index 5. myAL.RemoveAt(5) ' Displays the current state of the ArrayList. Console.WriteLine("After removing the element at index 5:") PrintValues(myAL) ' Removes three elements starting at index 4. myAL.RemoveRange(4, 3) ' Displays the current state of the ArrayList. Console.WriteLine("After removing three elements starting at index 4:") PrintValues(myAL) End Sub Public Shared Sub PrintValues(myList As IEnumerable) Dim myEnumerator As System.Collections.IEnumerator = _ myList.GetEnumerator() While myEnumerator.MoveNext() Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current) End While Console.WriteLine() End Sub End Class ' This code produces the following output. ' ' The ArrayList initially contains the following: ' The quick brown fox jumped over the lazy dog ' After removing "lazy": ' The quick brown fox jumped over the dog ' After removing the element at index 5: ' The quick brown fox jumped the dog ' After removing three elements starting at index 4: ' The quick brown fox [C#] using System; using System.Collections; public class SamplesArrayList { public static void Main() { // Creates and initializes a new ArrayList. ArrayList myAL = new ArrayList(); myAL.Add( "The" ); myAL.Add( "quick" ); myAL.Add( "brown" ); myAL.Add( "fox" ); myAL.Add( "jumped" ); myAL.Add( "over" ); myAL.Add( "the" ); myAL.Add( "lazy" ); myAL.Add( "dog" ); // Displays the ArrayList. Console.WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL ); // Removes the element containing "lazy". myAL.Remove( "lazy" ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing \"lazy\":" ); PrintValues( myAL ); // Removes the element at index 5. myAL.RemoveAt( 5 ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing the element at index 5:" ); PrintValues( myAL ); // Removes three elements starting at index 4. myAL.RemoveRange( 4, 3 ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing three elements starting at index 4:" ); PrintValues( myAL ); } public static void PrintValues( IEnumerable myList ) { System.Collections.IEnumerator myEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "\t{0}", myEnumerator.Current ); Console.WriteLine(); } } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox jumped over the lazy dog After removing "lazy": The quick brown fox jumped over the dog After removing the element at index 5: The quick brown fox jumped the dog After removing three elements starting at index 4: The quick brown fox */ [C++] #using <mscorlib.dll> using namespace System; using namespace System::Collections; void PrintValues( IEnumerable* myList ); int main() { // Creates and initializes a new ArrayList. ArrayList* myAL = new ArrayList(); myAL->Add( S"The" ); myAL->Add( S"quick" ); myAL->Add( S"brown" ); myAL->Add( S"fox" ); myAL->Add( S"jumped" ); myAL->Add( S"over" ); myAL->Add( S"the" ); myAL->Add( S"lazy" ); myAL->Add( S"dog" ); // Displays the ArrayList. Console::WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL ); // Removes the element containing "lazy". myAL->Remove( S"lazy" ); // Displays the current state of the ArrayList. Console::WriteLine( "After removing \"lazy\":" ); PrintValues( myAL ); // Removes the element at index 5. myAL->RemoveAt( 5 ); // Displays the current state of the ArrayList. Console::WriteLine( "After removing the element at index 5:" ); PrintValues( myAL ); // Removes three elements starting at index 4. myAL->RemoveRange( 4, 3 ); // Displays the current state of the ArrayList. Console::WriteLine( "After removing three elements starting at index 4:" ); PrintValues( myAL ); } void PrintValues( IEnumerable* myList ) { System::Collections::IEnumerator* myEnumerator = myList->GetEnumerator(); while ( myEnumerator->MoveNext() ) Console::Write( "\t{0}", myEnumerator->Current ); Console::WriteLine(); } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox jumped over the lazy dog After removing "lazy": The quick brown fox jumped over the dog After removing the element at index 5: The quick brown fox jumped the dog After removing three elements starting at index 4: The quick brown fox */ [JScript] import System; import System.Collections; // Creates and initializes a new ArrayList. var myAL : ArrayList = new ArrayList(); myAL.Add( "The" ); myAL.Add( "quick" ); myAL.Add( "brown" ); myAL.Add( "fox" ); myAL.Add( "jumped" ); myAL.Add( "over" ); myAL.Add( "the" ); myAL.Add( "lazy" ); myAL.Add( "dog" ); // Displays the ArrayList. Console.WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL ); // Removes the element containing "lazy". myAL.Remove( "lazy" ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing \"lazy\":" ); PrintValues( myAL ); // Removes the element at index 5. myAL.RemoveAt( 5 ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing the element at index 5:" ); PrintValues( myAL ); // Removes three elements starting at index 4. myAL.RemoveRange( 4, 3 ); // Displays the current state of the ArrayList. Console.WriteLine( "After removing three elements starting at index 4:" ); PrintValues( myAL ); function PrintValues( myList : IEnumerable ) { var myEnumerator : System.Collections.IEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "\t{0}", myEnumerator.Current ); Console.WriteLine(); } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox jumped over the lazy dog After removing "lazy": The quick brown fox jumped over the dog After removing the element at index 5: The quick brown fox jumped the dog After removing three elements starting at index 4: The quick brown fox */
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard
See Also
ArrayList Class | ArrayList Members | System.Collections Namespace | RemoveAt | RemoveRange | Add | Insert | Performing Culture-Insensitive String Operations in Collections