String.CopyTo Method (Int32, Char(), Int32, Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Copies a specified number of characters from a specified position in this instance to a specified position in an array of Unicode characters.

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

Public Sub CopyTo (
	sourceIndex As Integer,
	destination As Char(),
	destinationIndex As Integer,
	count As Integer


Type: System.Int32

The index of the first character in this instance to copy.

Type: System.Char()

An array of Unicode characters to which characters in this instance are copied.

Type: System.Int32

The index in destination at which the copy operation begins.

Type: System.Int32

The number of characters in this instance to copy to destination.

Exception Condition

destination is null.


sourceIndex, destinationIndex, or count is negative


sourceIndex does not identify a position in the current instance.


destinationIndex does not identify a valid index in the destination array.


count is greater than the length of the substring from startIndex to the end of this instance


count is greater than the length of the subarray from destinationIndex to the end of the destination array.

This method copies count characters from the sourceIndex position of this instance to the destinationIndex position of destination character array. This method does not resize the destination character array; it must have a sufficient number of elements to accommodate the copied characters or the method throws an ArgumentOutOfRangeException.

sourceIndex and destinationIndex are zero-based.

The following example demonstrates the CopyTo method.

Public Class CopyToTest
    Public Shared Sub Main()
        ' Embed an array of characters in a string
        Dim strSource As String = "changed"
        Dim destination As Char() = {"T"c, "h"c, "e"c, " "c, "i"c, "n"c, "i"c, _
                    "t"c, "i"c, "a"c, "l"c, " "c, "a"c, "r"c, "r"c, "a"c, "y"c}

        ' Print the char array

        ' Embed the source string in the destination string
        strSource.CopyTo(0, destination, 4, strSource.Length)

        ' Print the resulting array

        strSource = "A different string"

        ' Embed only a section of the source string in the destination
        strSource.CopyTo(2, destination, 3, 9)

        ' Print the resulting array
    End Sub 
End Class 
' The example displays the following output:
'       The initial array
'       The changed array
'       Thedifferentarray

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top