Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ArrayList.CopyTo Method (Int32, Array, Int32, Int32)

Copies a range of elements from the ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

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

public virtual void CopyTo (
	int index,
	Array array,
	int arrayIndex,
	int count
)
public void CopyTo (
	int index, 
	Array array, 
	int arrayIndex, 
	int count
)
public function CopyTo (
	index : int, 
	array : Array, 
	arrayIndex : int, 
	count : int
)
Not applicable.

Parameters

index

The zero-based index in the source ArrayList at which copying begins.

array

The one-dimensional Array that is the destination of the elements copied from ArrayList. The Array must have zero-based indexing.

arrayIndex

The zero-based index in array at which copying begins.

count

The number of elements to copy.

Exception typeCondition

ArgumentNullException

array is a null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

index is less than zero.

-or-

arrayIndex is less than zero.

-or-

count is less than zero.

ArgumentException

array is multidimensional.

-or-

index is equal to or greater than the Count of the source ArrayList.

-or-

arrayIndex is equal to or greater than the length of array.

-or-

The number of elements from index to the end of the source ArrayList is greater than the available space from arrayIndex to the end of the destination array.

InvalidCastException

The type of the source ArrayList cannot be cast automatically to the type of the destination array.

The specified array must be of a compatible type.

This method uses System.Array.Copy to copy the elements.

The elements are copied to the Array in the same order in which the enumerator iterates through the ArrayList.

This method is an O(n) operation, where n is count.

The following code example shows how to copy an ArrayList into a one-dimensional System.Array.

using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes the source ArrayList.
      ArrayList mySourceList = new ArrayList();
      mySourceList.Add( "three" );
      mySourceList.Add( "napping" );
      mySourceList.Add( "cats" );
      mySourceList.Add( "in" );
      mySourceList.Add( "the" );
      mySourceList.Add( "barn" );

      // Creates and initializes the one-dimensional target Array.
      String[] myTargetArray = new String[15];
      myTargetArray[0] = "The";
      myTargetArray[1] = "quick";
      myTargetArray[2] = "brown";
      myTargetArray[3] = "fox";
      myTargetArray[4] = "jumped";
      myTargetArray[5] = "over";
      myTargetArray[6] = "the";
      myTargetArray[7] = "lazy";
      myTargetArray[8] = "dog";

      // Displays the values of the target Array.
      Console.WriteLine( "The target Array contains the following (before and after copying):" );
      PrintValues( myTargetArray, ' ' );

      // Copies the second element from the source ArrayList to the target Array, starting at index 7.
      mySourceList.CopyTo( 1, myTargetArray, 7, 1 );

      // Displays the values of the target Array.
      PrintValues( myTargetArray, ' ' );

      // Copies the entire source ArrayList to the target Array, starting at index 6.
      mySourceList.CopyTo( myTargetArray, 6 );

      // Displays the values of the target Array.
      PrintValues( myTargetArray, ' ' );

      // Copies the entire source ArrayList to the target Array, starting at index 0.
      mySourceList.CopyTo( myTargetArray );

      // Displays the values of the target Array.
      PrintValues( myTargetArray, ' ' );

   }

   public static void PrintValues( String[] myArr, char mySeparator )  {
      for ( int i = 0; i < myArr.Length; i++ )
         Console.Write( "{0}{1}", mySeparator, myArr[i] );
      Console.WriteLine();
   }

}


/* 
This code produces the following output.

The target Array contains the following (before and after copying):
 The quick brown fox jumped over the lazy dog
 The quick brown fox jumped over the napping dog
 The quick brown fox jumped over three napping cats in the barn
 three napping cats in the barn three napping cats in the barn

*/ 

import System.*;
import System.Collections.*;

public class SamplesArrayList
{
    public static void main(String[] args)
    {
        // Creates and initializes the source ArrayList.
        ArrayList mySourceList = new ArrayList();

        mySourceList.Add("three");
        mySourceList.Add("napping");
        mySourceList.Add("cats");
        mySourceList.Add("in");
        mySourceList.Add("the");
        mySourceList.Add("barn");

        // Creates and initializes the one-dimensional target Array.
        String myTargetArray[] = new String[15];

        myTargetArray.set_Item(0, "The");
        myTargetArray.set_Item(1, "quick");
        myTargetArray.set_Item(2, "brown");
        myTargetArray.set_Item(3, "fox");
        myTargetArray.set_Item(4, "jumped");
        myTargetArray.set_Item(5, "over");
        myTargetArray.set_Item(6, "the");
        myTargetArray.set_Item(7, "lazy");
        myTargetArray.set_Item(8, "dog");

        // Displays the values of the target Array.
        Console.WriteLine("The target Array contains the following "
            + "(before and after copying):");
        PrintValues(myTargetArray, ' ');

        // Copies the second element from the source Array to the 
        // target ArrayList, starting at index 7.
        mySourceList.CopyTo(1, myTargetArray, 7, 1);

        // Displays the values of the target Array.
        PrintValues(myTargetArray, ' ');

        // Copies the entire source ArrayList to the target Array,
        // starting at index 6.
        mySourceList.CopyTo(myTargetArray, 6);

        // Displays the values of the target Array.
        PrintValues(myTargetArray, ' ');

        // Copies the entire source ArrayList to the target Array,
        // starting at index 0.
        mySourceList.CopyTo(myTargetArray);

        // Displays the values of the target Array.
        PrintValues(myTargetArray, ' ');
    } //main

    public static void PrintValues(String myArr[], char mySeparator)
    {
        for (int i = 0; i < myArr.length; i++) {
            Console.Write("{0}{1}", new Character(mySeparator), 
                myArr.get_Item(i));
        }
        Console.WriteLine();
    } //PrintValues
} //SamplesArrayList 

/* 
 This code produces the following output.
 
 The target Array contains the following (before and after copying):
  The quick brown fox jumped over the lazy dog
  The quick brown fox jumped over the napping dog
  The quick brown fox jumped over three napping cats in the barn
  three napping cats in the barn three napping cats in the barn

 */

import System;
import System.Collections;


// Creates and initializes the source ArrayList.
var mySourceList : ArrayList  = new ArrayList();
mySourceList.Add( "three" );
mySourceList.Add( "napping" );
mySourceList.Add( "cats" );
mySourceList.Add( "in" );
mySourceList.Add( "the" );
mySourceList.Add( "barn" );

// Creates and initializes the one-dimensional target Array.
var myTargetArray : System.Array = System.Array.CreateInstance( System.String, 15 );
myTargetArray.SetValue( "The", 0 );
myTargetArray.SetValue( "quick", 1 );
myTargetArray.SetValue( "brown", 2 );
myTargetArray.SetValue( "fox", 3 );
myTargetArray.SetValue( "jumped", 4 );
myTargetArray.SetValue( "over", 5 );
myTargetArray.SetValue( "the", 6 );
myTargetArray.SetValue( "lazy", 7 );
myTargetArray.SetValue( "dog", 8 );

// Displays the values of the target Array.
Console.WriteLine( "The target Array contains the following (before and after copying):" );
PrintValues( myTargetArray, ' ' );

// Copies the second element from the source ArrayList to the target Array, starting at index 7.
mySourceList.CopyTo( 1, myTargetArray, 7, 1 );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

// Copies the entire source ArrayList to the target Array, starting at index 6.
mySourceList.CopyTo( myTargetArray, 6 );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

// Copies the entire source ArrayList to the target Array, starting at index 0.
mySourceList.CopyTo( myTargetArray );

// Displays the values of the target Array.
PrintValues( myTargetArray, ' ' );

 
function PrintValues( myArr : System.Array , mySeparator : char  )  {
   var myEnumerator : System.Collections.IEnumerator = myArr.GetEnumerator();
   var i : int= 0;
   var cols : int = myArr.GetLength( myArr.Rank - 1 );
   while ( myEnumerator.MoveNext() )  {
      if ( i < cols )  {
         i++;
      } else  {
         Console.WriteLine();
         i = 1;
      }
      Console.Write( "{0}{1}", mySeparator, myEnumerator.Current );
   }
   Console.WriteLine();
}
 /* 
 This code produces the following output.
 
 The target Array contains the following (before and after copying):
  The quick brown fox jumped over the lazy dog      
  The quick brown fox jumped over the napping dog      
  The quick brown fox jumped over three napping cats in the barn   
  three napping cats in the barn three napping cats in the barn
 */ 

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft