ArrayList::SetRange Method
Copies the elements of a collection over a range of elements in the ArrayList.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- index
- Type: System::Int32
The zero-based ArrayList index at which to start copying the elements of c.
- c
- Type: System.Collections::ICollection
The ICollection whose elements to copy to the ArrayList. The collection itself cannot be nullptr, but it can contain elements that are nullptr.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | index is less than zero. -or- index plus the number of elements in c is greater than Count. |
| ArgumentNullException | c is nullptr. |
| NotSupportedException | The ArrayList is read-only. |
ArrayList accepts nullptr as a valid value and allows duplicate elements.
The order of the elements in the ICollection is preserved in the ArrayList.
This method is an O(n + 1) operation, where n is Count.
The following code example shows how to set and get a range of elements in the ArrayList.
using namespace System; using namespace System::Collections; void PrintValues( IEnumerable^ myList, char mySeparator ); int main() { // Creates and initializes a new ArrayList. ArrayList^ myAL = gcnew 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" ); // Creates and initializes the source ICollection. Queue^ mySourceList = gcnew Queue; mySourceList->Enqueue( "big" ); mySourceList->Enqueue( "gray" ); mySourceList->Enqueue( "wolf" ); // Displays the values of five elements starting at index 0. ArrayList^ mySubAL = myAL->GetRange( 0, 5 ); Console::WriteLine( "Index 0 through 4 contains:" ); PrintValues( mySubAL, '\t' ); // Replaces the values of five elements starting at index 1 with the values in the ICollection. myAL->SetRange( 1, mySourceList ); // Displays the values of five elements starting at index 0. mySubAL = myAL->GetRange( 0, 5 ); Console::WriteLine( "Index 0 through 4 now contains:" ); PrintValues( mySubAL, '\t' ); } void PrintValues( IEnumerable^ myList, char mySeparator ) { IEnumerator^ myEnum = myList->GetEnumerator(); while ( myEnum->MoveNext() ) { Object^ obj = safe_cast<Object^>(myEnum->Current); Console::Write( "{0}{1}", mySeparator, obj ); } Console::WriteLine(); } /* This code produces the following output. Index 0 through 4 contains: The quick brown fox jumped Index 0 through 4 now contains: The big gray wolf jumped */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.