StringCollection::CopyTo Method (array<String^>^, Int32)
Copies the entire StringCollection values to a one-dimensional array of strings, starting at the specified index of the target array.
Assembly: System (in System.dll)
Parameters
- array
-
Type:
array<System::String^>^
The one-dimensional array of strings that is the destination of the elements copied from StringCollection. The Array must have zero-based indexing.
- index
-
Type:
System::Int32
The zero-based index in array at which copying begins.
| Exception | Condition |
|---|---|
| ArgumentNullException | array is null. |
| ArgumentOutOfRangeException | index is less than zero. |
| ArgumentException | array is multidimensional. -or- The number of elements in the source StringCollection is greater than the available space from index to the end of the destination array. |
| InvalidCastException | The type of the source StringCollection cannot be cast automatically to the type of the destination array. |
The specified array must be of a compatible type.
The elements are copied to the Array in the same order in which the enumerator of the StringCollection iterates through the StringCollection.
This method is an O(n) operation, where n is Count.
The following code example copies a StringCollection to an array.
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; void PrintValues( IEnumerable^ myCol ); int main() { // Creates and initializes a new StringCollection. StringCollection^ myCol = gcnew StringCollection; array<String^>^myArr = {"RED","orange","yellow","RED","green","blue","RED","indigo","violet","RED"}; myCol->AddRange( myArr ); Console::WriteLine( "Initial contents of the StringCollection:" ); PrintValues( myCol ); // Copies the collection to a new array starting at index 0. array<String^>^myArr2 = gcnew array<String^>(myCol->Count); myCol->CopyTo( myArr2, 0 ); Console::WriteLine( "The new array contains:" ); for ( int i = 0; i < myArr2->Length; i++ ) { Console::WriteLine( " [{0}] {1}", i, myArr2[ i ] ); } Console::WriteLine(); } void PrintValues( IEnumerable^ myCol ) { IEnumerator^ myEnum = myCol->GetEnumerator(); while ( myEnum->MoveNext() ) { Object^ obj = safe_cast<Object^>(myEnum->Current); Console::WriteLine( " {0}", obj ); } Console::WriteLine(); } /* This code produces the following output. Initial contents of the StringCollection: RED orange yellow RED green blue RED indigo violet RED The new array contains: [0] RED [1] orange [2] yellow [3] RED [4] green [5] blue [6] RED [7] indigo [8] violet [9] RED */
Available since 10
.NET Framework
Available since 1.1