Home
VB.NET
String.Copy and CopyTo
Updated Nov 7, 2023
Dot Net Perls
String.Copy, CopyTo. Usually a string does not need copying. We can use literals, or the strings returned by methods like Replace or ToString.
With Copy, we copy an existing string and get a new string. With CopyTo we copy the characters of a string into a Char array. We specify an index and length.
Copy example. The String.Copy method receives a string and returns a copy of that string. This is a shared method—we do not call it on a string instance.
Shared
Here We use ReferenceEquals to see if two variables point to the same reference. String.Copy returns a separate, new string.
Module Module1

    Sub Main()
        Dim value As String = "cat"

        ' Use String.Copy to copy a string.
        Dim valueCopied As String = String.Copy(value)

        ' The copy has a different reference.
        If Not ReferenceEquals(value, valueCopied) Then
            Console.WriteLine("Not same reference")
        End If
    End Sub

End Module
Not same reference
CopyTo. This method has nothing in common with String.Copy. CopyTo is an instance method and it copies the string's characters to a char array.
Here We copy the first 3 characters in a string to a 3-element char array. We then use For-Each to display the array's contents.
For
Tip In VB.NET we use the last array index to indicate its length. So a 2 means a 3-element array.
Array
Module Module1

    Sub Main()
        Dim value As String = "dog"

        ' A 3-element char array.
        Dim destination(2) As Char

        ' Copy string to the destination array.
        value.CopyTo(0, destination, 0, 3)

        ' Loop over the resulting char array.
        For Each letter As Char In destination
            Console.WriteLine(letter)
        Next
    End Sub

End Module
d o g
A summary. The String.Copy and CopyTo methods provide ways to get the contents of strings and put them in new objects. CopyTo is more useful—it helps use char arrays.
Char Array
As developers we rarely need to use String.Copy. But it is helpful to know it exists. To reduce memory usage, it is best to reuse existing strings.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Nov 7, 2023 (edit).
Home
Changes
© 2007-2025 Sam Allen