StringBuilder.CopyTo Metoda

Definice

Přetížení

CopyTo(Int32, Span<Char>, Int32)

Zkopíruje znaky ze zadaného segmentu této instance do cílového Char rozpětí.Copies the characters from a specified segment of this instance to a destination Char span.

CopyTo(Int32, Char[], Int32, Int32)

Zkopíruje znaky ze zadaného segmentu této instance do zadaného segmentu cílového pole Char.Copies the characters from a specified segment of this instance to a specified segment of a destination Char array.

CopyTo(Int32, Span<Char>, Int32)

Zkopíruje znaky ze zadaného segmentu této instance do cílového Char rozpětí.Copies the characters from a specified segment of this instance to a destination Char span.

public:
 void CopyTo(int sourceIndex, Span<char> destination, int count);
public void CopyTo (int sourceIndex, Span<char> destination, int count);
member this.CopyTo : int * Span<char> * int -> unit
Public Sub CopyTo (sourceIndex As Integer, destination As Span(Of Char), count As Integer)

Parametry

sourceIndex
Int32

Počáteční pozice v této instanci, ze které budou zkopírovány znaky.The starting position in this instance where characters will be copied from. Index je založený na nule.The index is zero-based.

destination
Span<Char>

Zapisovatelné rozpětí, kde budou zkopírovány znaky.The writable span where characters will be copied.

count
Int32

Počet znaků, které mají být zkopírovány.The number of characters to be copied.

Poznámky

CopyTo metoda je určena pro použití v vzácných situacích, kdy potřebujete efektivně kopírovat po sobě jdoucí části objektu StringBuilder do rozsahu.The CopyTo method is intended to be used in the rare situation when you need to efficiently copy successive sections of a StringBuilder object to an span.

Například vaše aplikace může naplnit objekt StringBuilder s velkým počtem znaků a potom použít metodu CopyTo ke zkopírování malých, po sobě jdoucích objektů StringBuilder objektu do rozsahu, ve kterém jsou díly zpracovávány.For example, your application could populate a StringBuilder object with a large number of characters then use the CopyTo method to copy small, successive pieces of the StringBuilder object to an span where the pieces are processed. Když jsou zpracována všechna data v objektu StringBuilder, je velikost objektu StringBuilder nastavena na hodnotu nula a cyklus se opakuje.When all the data in the StringBuilder object is processed, the size of the StringBuilder object is set to zero and the cycle is repeated.

CopyTo(Int32, Char[], Int32, Int32)

Zkopíruje znaky ze zadaného segmentu této instance do zadaného segmentu cílového pole Char.Copies the characters from a specified segment of this instance to a specified segment of a destination Char array.

public:
 void CopyTo(int sourceIndex, cli::array <char> ^ destination, int destinationIndex, int count);
public void CopyTo (int sourceIndex, char[] destination, int destinationIndex, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public void CopyTo (int sourceIndex, char[] destination, int destinationIndex, int count);
member this.CopyTo : int * char[] * int * int -> unit
Public Sub CopyTo (sourceIndex As Integer, destination As Char(), destinationIndex As Integer, count As Integer)

Parametry

sourceIndex
Int32

Počáteční pozice v této instanci, ze které budou zkopírovány znaky.The starting position in this instance where characters will be copied from. Index je založený na nule.The index is zero-based.

destination
Char[]

Pole, do kterého se zkopírují znakyThe array where characters will be copied.

destinationIndex
Int32

Počáteční pozice v destination, kde budou zkopírovány znaky.The starting position in destination where characters will be copied. Index je založený na nule.The index is zero-based.

count
Int32

Počet znaků, které mají být zkopírovány.The number of characters to be copied.

Atributy

Výjimky

destination je null.destination is null.

sourceIndex, destinationIndexnebo count, je menší než nula.sourceIndex, destinationIndex, or count, is less than zero.

-nebo--or-

sourceIndex je větší než délka této instance.sourceIndex is greater than the length of this instance.

sourceIndex + count je větší než délka této instance.sourceIndex + count is greater than the length of this instance.

-nebo--or-

destinationIndex + count je větší než délka destination.destinationIndex + count is greater than the length of destination.

Příklady

Následující příklad ukazuje metodu CopyTo.The following example demonstrates the CopyTo method.

// This example demonstrates the CopyTo(Int32, Char[], Int32, Int32) method.
// Typically the destination array is small, preallocated, and global while 
// the StringBuilder is large with programmatically defined data. 
// However, for this example both the array and StringBuilder are small 
// and the StringBuilder has predefined data.

using namespace System;
using namespace System::Text;

int main()
{
   array<Char>^dest = gcnew array<Char>(6);
   StringBuilder^ src = gcnew StringBuilder( "abcdefghijklmnopqrstuvwxyz!" );
   dest[ 1 ] = ')';
   dest[ 2 ] = ' ';

   // Copy the source to the destination in 9 pieces, 3 characters per piece.
   Console::WriteLine( "\nPiece) Data:" );
   for ( int ix = 0; ix < 9; ix++ )
   {
      dest[ 0 ] = ix.ToString()[ 0 ];
      src->CopyTo( ix * 3, dest, 3, 3 );
      Console::Write( "    " );
      Console::WriteLine( dest );
   }
}

/*
This example produces the following results:

Piece) Data:
    0) abc
    1) def
    2) ghi
    3) jkl
    4) mno
    5) pqr
    6) stu
    7) vwx
    8) yz!
*/
// This example demonstrates the CopyTo(Int32, Char[], Int32, Int32) method.

// Typically the destination array is small, preallocated, and global while 
// the StringBuilder is large with programmatically defined data. 
// However, for this example both the array and StringBuilder are small 
// and the StringBuilder has predefined data.

using System;
using System.Text;

class Sample 
{
    protected static char[] dest = new char[6];
    public static void Main() 
    {
    StringBuilder src = new StringBuilder("abcdefghijklmnopqrstuvwxyz!");
    dest[1] = ')';
    dest[2] = ' ';

// Copy the source to the destination in 9 pieces, 3 characters per piece.

    Console.WriteLine("\nPiece) Data:");
    for(int ix = 0; ix < 9; ix++)
        {
        dest[0] = ix.ToString()[0];
        src.CopyTo(ix * 3, dest, 3, 3);
        Console.Write("    ");
        Console.WriteLine(dest);
        }
    }
}
/*
This example produces the following results:

Piece) Data:
    0) abc
    1) def
    2) ghi
    3) jkl
    4) mno
    5) pqr
    6) stu
    7) vwx
    8) yz!
*/
' Typically the destination array is small, preallocated, and global while 
' the StringBuilder is large with programmatically defined data. 
' However, for this example both the array and StringBuilder are small 
' and the StringBuilder has predefined data.

Imports System.Text

Class Sample
   Protected Shared dest(5) As Char
   
   Public Shared Sub Main()
      Dim src As New StringBuilder("abcdefghijklmnopqrstuvwxyz!")
      dest(1) = ")"c
      dest(2) = " "c
      
      ' Copy the source to the destination in 9 pieces, 3 characters per piece.
      Console.WriteLine(vbCrLf & "Piece) Data:")
      Dim ix As Integer
      For ix = 0 To 8
         dest(0) = ix.ToString()(0)
         src.CopyTo(ix * 3, dest, 3, 3)
         Console.Write("    ")
         Console.WriteLine(dest)
      Next ix
   End Sub
End Class
'
' This example produces the following results:
'
' Piece) Data:
'     0) abc
'     1) def
'     2) ghi
'     3) jkl
'     4) mno
'     5) pqr
'     6) stu
'     7) vwx
'     8) yz!

Poznámky

CopyTo metoda je určena pro použití v vzácných situacích, kdy potřebujete efektivně kopírovat po sobě jdoucí části objektu StringBuilder do pole.The CopyTo method is intended to be used in the rare situation when you need to efficiently copy successive sections of a StringBuilder object to an array. Pole by mělo mít pevnou velikost, předem přiděleno, opakovaně použitelné a případně globálně přístupné.The array should be a fixed size, preallocated, reusable, and possibly globally accessible.

Například vaše aplikace může naplnit objekt StringBuilder s velkým počtem znaků a potom použít metodu CopyTo ke zkopírování malých, po sobě jdoucích objektů StringBuilder objektu do pole, kde jsou díly zpracovávány.For example, your application could populate a StringBuilder object with a large number of characters then use the CopyTo method to copy small, successive pieces of the StringBuilder object to an array where the pieces are processed. Když jsou zpracována všechna data v objektu StringBuilder, je velikost objektu StringBuilder nastavena na hodnotu nula a cyklus se opakuje.When all the data in the StringBuilder object is processed, the size of the StringBuilder object is set to zero and the cycle is repeated.

Platí pro