ArrayList::SetRange Method (Int32, ICollection^)

 

Copies the elements of a collection over a range of elements in the ArrayList.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

public:
virtual void SetRange(
	int index,
	ICollection^ c
)

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 null, but it can contain elements that are null.

Exception Condition
ArgumentOutOfRangeException

index is less than zero.

-or-

index plus the number of elements in c is greater than Count.

ArgumentNullException

c is null.

NotSupportedException

The ArrayList is read-only.

ArrayList accepts null 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
 */

Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Return to top
Show: