System Namespace Array Class
Copies all the elements of the current one-dimensional Array to the specified one-dimensional Array starting at the specified destination Array index.
[ VB ]
<Serializable>
Overridable Public Sub CopyTo ( _
ByVal array As Array, _
ByVal index As Integer _
) Implements ICollection.CopyTo
[ C# ]
[Serializable]
public virtual void CopyTo (
Array array,
int index
);
[ C++ ]
[Serializable]
public: virtual
void CopyTo (
Array* array,
int index
);
[JScript ]
public Serializable
function CopyTo (
array : Array,
index : int
);
- array
- The one-dimensional Array that is the destination of the elements copied from the current Array.
- index
- The index in array at which copying begins.
ICollection.CopyTo
This method supports the System.Collections.ICollection interface. If implementing System.Collections.ICollection is not explicitly required, use Copy to avoid an extra indirection.
If this method throws an exception while copying, the state of array is undefined.
The following code example shows how to copy an Array to another Array.
[ VB ]
Imports System
Imports Microsoft.VisualBasic
Public Class SamplesArray
Public Shared Sub Main ( )
' Creates and initializes two new Arrays.
Dim mySourceArray As Array = Array.CreateInstance ( GetType ( String ) , 6 )
mySourceArray.SetValue ( "three", 0 )
mySourceArray.SetValue ( "napping", 1 )
mySourceArray.SetValue ( "cats", 2 )
mySourceArray.SetValue ( "in", 3 )
mySourceArray.SetValue ( "the", 4 )
mySourceArray.SetValue ( "barn", 5 )
Dim myTargetArray As Array = Array.CreateInstance ( GetType ( 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 Array.
Response.WriteLine ( "The target Array contains the following" _
& " ( before and after copying ) :" )
PrintValues ( myTargetArray, " "c )
' Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo ( myTargetArray, 6 )
' Displays the values of the Array.
PrintValues ( myTargetArray, " "c )
End Sub
Public Shared Sub PrintValues ( myArr As Array, mySeparator As Char )
Dim myEnumerator As System.Collections.IEnumerator = _
myArr.GetEnumerator ( )
Dim i As Integer = 0
Dim cols As Integer = myArr.GetLength ( ( myArr.Rank - 1 ) )
While myEnumerator.MoveNext ( )
If i < cols Then
i += 1
Else
Response.WriteLine ( )
i = 1
End If
Response.Write ( "{0}{1}", mySeparator, myEnumerator.Current )
End While
Response.WriteLine ( )
End Sub
End Class
' 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 three napping cats in the barn
[ C# ]
using System;
public class SamplesArray {
public static void Main ( ) {
// Creates and initializes two new Arrays.
Array mySourceArray=Array.CreateInstance ( typeof ( String ) , 6 );
mySourceArray.SetValue ( "three", 0 );
mySourceArray.SetValue ( "napping", 1 );
mySourceArray.SetValue ( "cats", 2 );
mySourceArray.SetValue ( "in", 3 );
mySourceArray.SetValue ( "the", 4 );
mySourceArray.SetValue ( "barn", 5 );
Array myTargetArray=Array.CreateInstance ( typeof ( 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 Array.
Response.WriteLine ( "The target Array contains the following ( before and after copying ) :" );
PrintValues ( myTargetArray, ' ' );
// Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo ( myTargetArray, 6 );
// Displays the values of the Array.
PrintValues ( myTargetArray, ' ' );
}
public static void PrintValues ( Array myArr, char mySeparator ) {
System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator ( );
int i = 0;
int cols = myArr.GetLength ( myArr.Rank - 1 );
while ( myEnumerator.MoveNext ( ) ) {
if ( i < cols ) {
i++;
} else {
Response.WriteLine ( );
i = 1;
}
Response.Write ( "{0}{1}", mySeparator, myEnumerator.Current );
}
Response.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 three napping cats in the barn
*/
[JScript ]
import System;
public class SamplesArray {
public static function Main ( ) {
// Creates and initializes two new Arrays.
var mySourceArray : System.Array = System.Array.CreateInstance ( System.String, 6 );
mySourceArray.SetValue ( "three", 0 );
mySourceArray.SetValue ( "napping", 1 );
mySourceArray.SetValue ( "cats", 2 );
mySourceArray.SetValue ( "in", 3 );
mySourceArray.SetValue ( "the", 4 );
mySourceArray.SetValue ( "barn", 5 );
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 Array.
Response.WriteLine ( "The target Array contains the following ( before and after copying ) :" );
PrintValues ( myTargetArray, ' ' );
// Copies the source Array to the target Array, starting at index 6.
mySourceArray.CopyTo ( myTargetArray, 6 );
// Displays the values of the Array.
PrintValues ( myTargetArray, ' ' );
}
public static 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 {
Response.WriteLine ( );
i = 1;
}
Response.Write ( "{0}{1}", mySeparator, myEnumerator.Current );
}
Response.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 three napping cats in the barn
*/
The following code example shows how to copy an Array to another Array with a nonzero lower bound. Note that the entire source Array is copied, including empty elements that overwrite existing elements in the target Array.
[ VB ]
Public Class SamplesArray2
Public Shared Sub Main ( )
' Creates and initializes the source Array.
Dim myArrayZero As Array = Array.CreateInstance ( GetType ( String ) , 3 )
myArrayZero.SetValue ( "zero", 0 )
myArrayZero.SetValue ( "one", 1 )
' Displays the source Array.
Response.WriteLine ( "The array with lower bound=0 contains:" )
PrintIndexAndValues ( myArrayZero )
' Creates and initializes the target Array.
Dim myArrLen As Integer ( ) = {4}
Dim myArrLow As Integer ( ) = {2}
Dim myArrayTwo As Array = Array.CreateInstance ( GetType ( String ) , _
myArrLen, myArrLow )
myArrayTwo.SetValue ( "two", 2 )
myArrayTwo.SetValue ( "three", 3 )
myArrayTwo.SetValue ( "four", 4 )
myArrayTwo.SetValue ( "five", 5 )
' Displays the target Array.
Response.WriteLine ( "The array with lower bound=2 contains:" )
PrintIndexAndValues ( myArrayTwo )
' Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo ( myArrayTwo, 3 )
' Displays the modified target Array.
Response.WriteLine ( ControlChars.Cr + "After copying to the target array from " _
+ "index 3:" )
PrintIndexAndValues ( myArrayTwo )
End Sub
Public Shared Sub PrintIndexAndValues ( myArray As Array )
Dim i As Integer
For i = myArray.GetLowerBound ( 0 ) To myArray.GetUpperBound ( 0 )
Response.WriteLine ( ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
+ "{1}", i, myArray.GetValue ( i ) )
Next i
End Sub
End Class
' This code produces the following output.
'
' The array with lower bound=0 contains:
' [0]: zero
' [1]: one
' [2]:
' The array with lower bound=2 contains:
' [2]: two
' [3]: three
' [4]: four
' [5]: five
'
' After copying to the target array from index 3:
' [2]: two
' [3]: zero
' [4]: one
' [5]:
[ C# ]
public class SamplesArray2{
public static void Main ( ) {
// Creates and initializes the source Array.
Array myArrayZero=Array.CreateInstance ( typeof ( String ) , 3 );
myArrayZero.SetValue ( "zero", 0 );
myArrayZero.SetValue ( "one", 1 );
// Displays the source Array.
Response.WriteLine ( "The array with lower bound=0 contains:" );
PrintIndexAndValues ( myArrayZero );
// Creates and initializes the target Array.
int [ ] myArrLen = { 4 };
int [ ] myArrLow = { 2 };
Array myArrayTwo=Array.CreateInstance ( typeof ( String ) , myArrLen, myArrLow );
myArrayTwo.SetValue ( "two", 2 );
myArrayTwo.SetValue ( "three", 3 );
myArrayTwo.SetValue ( "four", 4 );
myArrayTwo.SetValue ( "five", 5 );
// Displays the target Array.
Response.WriteLine ( "The array with lower bound=2 contains:" );
PrintIndexAndValues ( myArrayTwo );
// Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo ( myArrayTwo, 3 );
// Displays the modified target Array.
Response.WriteLine ( "\nAfter copying to the target array from index 3:" );
PrintIndexAndValues ( myArrayTwo );
}
public static void PrintIndexAndValues ( Array myArray ) {
for ( int i = myArray.GetLowerBound ( 0 ); i <= myArray.GetUpperBound ( 0 ); i++ )
Response.WriteLine ( "\t[{0}]:\t{1}", i, myArray.GetValue ( i ) );
}
}
/*
This code produces the following output.
The array with lower bound=0 contains:
[0]: zero
[1]: one
[2]:
The array with lower bound=2 contains:
[2]: two
[3]: three
[4]: four
[5]: five
After copying to the target array from index 3:
[2]: two
[3]: zero
[4]: one
[5]:
*/
[JScript ]
public class SamplesArray2{
public static function Main ( ) {
// Creates and initializes the source Array.
var myArrayZero : System.Array = System.Array.CreateInstance ( System.String, 3 );
myArrayZero.SetValue ( "zero", 0 );
myArrayZero.SetValue ( "one", 1 );
// Displays the source Array.
Response.WriteLine ( "The array with lower bound=0 contains:" );
PrintIndexAndValues ( myArrayZero );
// Creates and initializes the target Array.
var myArrLen : int [ ] = [4];
var myArrLow : int [ ] = [2];
var myArrayTwo : System.Array = System.Array.CreateInstance ( System.String, myArrLen, myArrLow );
myArrayTwo.SetValue ( "two", 2 );
myArrayTwo.SetValue ( "three", 3 );
myArrayTwo.SetValue ( "four", 4 );
myArrayTwo.SetValue ( "five", 5 );
// Displays the target Array.
Response.WriteLine ( "The array with lower bound=2 contains:" );
PrintIndexAndValues ( myArrayTwo );
// Copies from the array with lower bound=0 to the array with lower bound=2.
myArrayZero.CopyTo ( myArrayTwo, 3 );
// Displays the modified target Array.
Response.WriteLine ( "\nAfter copying to the target array from index 3:" );
PrintIndexAndValues ( myArrayTwo );
}
public static function PrintIndexAndValues ( myArray : System.Array ) {
for ( var i : int = myArray.GetLowerBound ( 0 ); i <= myArray.GetUpperBound ( 0 ); i++ )
Response.WriteLine ( "\t[{0}]:\t{1}", i, myArray.GetValue ( i ) );
}
}
/*
This code produces the following output.
The array with lower bound=0 contains:
[0]: zero
[1]: one
[2]:
The array with lower bound=2 contains:
[2]: two
[3]: three
[4]: four
[5]: five
After copying to the target array from index 3:
[2]: two
[3]: zero
[4]: one
[5]:
*/
Array Members ICollection Copy