ArrayList.AddRange Method
Adds the elements of an ICollection to the end of the ArrayList.
[Visual Basic] Public Overridable Sub AddRange( _ ByVal c As ICollection _ ) [C#] public virtual void AddRange( ICollection c ); [C++] public: virtual void AddRange( ICollection* c ); [JScript] public function AddRange( c : ICollection );
Parameters
- c
- The ICollection whose elements should be added to the end of the ArrayList. The collection itself cannot be a null reference (Nothing in Visual Basic), but it can contain elements that are a null reference (Nothing).
Exceptions
| Exception Type | Condition |
|---|---|
| ArgumentNullException | c is a null reference (Nothing in Visual Basic). |
| NotSupportedException | The ArrayList is read-only.
-or- The ArrayList has a fixed size. |
Remarks
ArrayList accepts a null reference (Nothing in Visual Basic) as a valid value and allows duplicate elements.
The order of the elements in the ICollection is preserved in the ArrayList.
If the new Count (the current Count plus the size of the collection) will be greater than Capacity, the capacity of the list is either doubled or increased to the new Count, whichever is greater. The internal array is automatically reallocated to accommodate the new elements and the existing elements are copied to the new array before the new elements are added.
If the ArrayList can accommodate the new elements without increasing the Capacity, this method is an O(n) operation, where n is the number of elements to be added. If the capacity needs to be increased to accommodate the new elements, this method becomes an O(n + m) operation, where n is the number of elements to be added and m is Count.
Example
The following example shows how to add elements to 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") ' Creates and initializes a new Queue. Dim myQueue As New Queue() myQueue.Enqueue("jumped") myQueue.Enqueue("over") myQueue.Enqueue("the") myQueue.Enqueue("lazy") myQueue.Enqueue("dog") ' Displays the ArrayList and the Queue. Console.WriteLine("The ArrayList initially contains the following:") PrintValues(myAL, ControlChars.Tab) Console.WriteLine("The Queue initially contains the following:") PrintValues(myQueue, ControlChars.Tab) ' Copies the Queue elements to the end of the ArrayList. myAL.AddRange(myQueue) ' Displays the ArrayList. Console.WriteLine("The ArrayList now contains the following:") PrintValues(myAL, ControlChars.Tab) End Sub Public Shared Sub PrintValues(myList As IEnumerable, mySeparator As Char) Dim myEnumerator As System.Collections.IEnumerator = _ myList.GetEnumerator() While myEnumerator.MoveNext() Console.Write("{0}{1}", mySeparator, 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 ' The Queue initially contains the following: ' jumped over the lazy dog ' The ArrayList now contains the following: ' The quick brown fox jumped over the lazy dog [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" ); // Creates and initializes a new Queue. Queue myQueue = new Queue(); myQueue.Enqueue( "jumped" ); myQueue.Enqueue( "over" ); myQueue.Enqueue( "the" ); myQueue.Enqueue( "lazy" ); myQueue.Enqueue( "dog" ); // Displays the ArrayList and the Queue. Console.WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL, '\t' ); Console.WriteLine( "The Queue initially contains the following:" ); PrintValues( myQueue, '\t' ); // Copies the Queue elements to the end of the ArrayList. myAL.AddRange( myQueue ); // Displays the ArrayList. Console.WriteLine( "The ArrayList now contains the following:" ); PrintValues( myAL, '\t' ); } public static void PrintValues( IEnumerable myList, char mySeparator ) { System.Collections.IEnumerator myEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "{0}{1}", mySeparator, myEnumerator.Current ); Console.WriteLine(); } } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox The Queue initially contains the following: jumped over the lazy dog The ArrayList now contains the following: The quick brown fox jumped over the lazy dog */ [C++] #using <mscorlib.dll> using namespace System; using namespace System::Collections; void PrintValues( IEnumerable* myList, String* mySeparator ); void 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" ); // Creates and initializes a new Queue. Queue* myQueue = new Queue(); myQueue->Enqueue( S"jumped" ); myQueue->Enqueue( S"over" ); myQueue->Enqueue( S"the" ); myQueue->Enqueue( S"lazy" ); myQueue->Enqueue( S"dog" ); // Displays the ArrayList and the Queue. Console::WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL, S"\t" ); Console::WriteLine( "The Queue initially contains the following:" ); PrintValues( myQueue, S"\t" ); // Copies the Queue elements to the end of the ArrayList. myAL->AddRange( myQueue ); // Displays the ArrayList. Console::WriteLine( "The ArrayList now contains the following:" ); PrintValues( myAL, S"\t" ); } void PrintValues( IEnumerable* myList, String* mySeparator ) { System::Collections::IEnumerator* myEnumerator = myList->GetEnumerator(); while ( myEnumerator->MoveNext() ) Console::Write( "{0}{1}", mySeparator, myEnumerator->Current ); Console::WriteLine(); } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox The Queue initially contains the following: jumped over the lazy dog The ArrayList now contains the following: The quick brown fox jumped over the lazy dog */ [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" ); // Creates and initializes a new Queue. var myQueue : Queue = new Queue(); myQueue.Enqueue( "jumped" ); myQueue.Enqueue( "over" ); myQueue.Enqueue( "the" ); myQueue.Enqueue( "lazy" ); myQueue.Enqueue( "dog" ); // Displays the ArrayList and the Queue. Console.WriteLine( "The ArrayList initially contains the following:" ); PrintValues( myAL, '\t' ); Console.WriteLine( "The Queue initially contains the following:" ); PrintValues( myQueue, '\t' ); // Copies the Queue elements to the end of the ArrayList. myAL.AddRange( myQueue ); // Displays the ArrayList. Console.WriteLine( "The ArrayList now contains the following:" ); PrintValues( myAL, '\t' ); function PrintValues( myList : IEnumerable , mySeparator : char ) { var myEnumerator : System.Collections.IEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "{0}{1}", mySeparator, myEnumerator.Current ); Console.WriteLine(); } /* This code produces the following output. The ArrayList initially contains the following: The quick brown fox The Queue initially contains the following: jumped over the lazy dog The ArrayList now contains the following: The quick brown fox jumped over the lazy dog */
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 | ICollection | Capacity | Count | Add | InsertRange | SetRange | GetRange | RemoveRange