Sdílet prostřednictvím


StringBuilder.CopyTo Metoda

Definice

Přetížení

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

Zkopíruje znaky ze zadaného segmentu této instance do zadaného segmentu cílového Char pole.

CopyTo(Int32, Span<Char>, Int32)

Zkopíruje znaky ze zadaného segmentu této instance do cílového Char rozsahu.

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

Zdroj:
StringBuilder.cs
Zdroj:
StringBuilder.cs
Zdroj:
StringBuilder.cs

Zkopíruje znaky ze zadaného segmentu této instance do zadaného segmentu cílového Char pole.

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
[<System.Runtime.InteropServices.ComVisible(false)>]
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 tomto případě, ze které budou zkopírovány znaky. Index je založený na nule.

destination
Char[]

Pole, do kterého se budou kopírovat znaky.

destinationIndex
Int32

Počáteční pozice, do destination které se budou kopírovat znaky. Index je založený na nule.

count
Int32

Počet znaků, které se mají zkopírovat.

Atributy

Výjimky

destination je null.

sourceIndex, destinationIndexnebo countje menší než nula.

-nebo-

sourceIndex je větší než délka této instance.

sourceIndex + count je větší než délka této instance.

-nebo-

destinationIndex + countje větší než délka .destination

Příklady

Následující příklad ukazuje metodu CopyTo .

// 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!
*/
// 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.

open System.Text

let dest = Array.zeroCreate 6

let src = StringBuilder "abcdefghijklmnopqrstuvwxyz!"
dest[1] <- ')'
dest[2] <- ' '

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

printfn "\Piece) Data:"
for i = 0 to 8 do
    dest[0] <- (string i)[0]
    src.CopyTo(i * 3, dest, 3, 3)
    printfn $"    {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

Metoda CopyTo je určena k použití ve výjimečné situaci, kdy potřebujete efektivně kopírovat po sobě jdoucí části objektu StringBuilder do pole. Pole by mělo mít pevnou velikost, předem přidělenou, opakovaně použitelnou a potenciálně globálně dostupnou.

Váš kód by například mohl naplnit StringBuilder objekt velkým počtem znaků a pak pomocí CopyTo metody zkopírovat malé po sobě jdoucí části objektu StringBuilder do pole, kde jsou části zpracovány. Při zpracování všech dat v objektu StringBuilder se velikost objektu StringBuilder nastaví na nulu a cyklus se opakuje.

Platí pro

CopyTo(Int32, Span<Char>, Int32)

Zdroj:
StringBuilder.cs
Zdroj:
StringBuilder.cs
Zdroj:
StringBuilder.cs

Zkopíruje znaky ze zadaného segmentu této instance do cílového Char rozsahu.

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 tomto případě, ze které budou zkopírovány znaky. Index je založený na nule.

destination
Span<Char>

Zapisovatelný rozsah, do kterého se budou kopírovat znaky.

count
Int32

Počet znaků, které se mají zkopírovat.

Poznámky

Metoda CopyTo je určena k použití ve výjimečných situacích, kdy potřebujete efektivně kopírovat po sobě jdoucí části objektu StringBuilder do rozsahu.

Váš kód by například mohl naplnit StringBuilder objekt velkým počtem znaků a pak pomocí CopyTo metody zkopírovat malé po sobě jdoucí části objektu StringBuilder do rozsahu, kde jsou části zpracovány. Při zpracování všech dat v objektu StringBuilder se velikost objektu StringBuilder nastaví na nulu a cyklus se opakuje.

Platí pro