Partage via


StringBuilder.CopyTo Méthode

Définition

Surcharges

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

Copie les caractères d'un segment spécifié de cette instance vers un segment spécifié d'un tableau Char de destination.

CopyTo(Int32, Span<Char>, Int32)

Copie les caractères d'un segment spécifié de cette instance dans une plage Char de destination.

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

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

Copie les caractères d'un segment spécifié de cette instance vers un segment spécifié d'un tableau Char de destination.

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)

Paramètres

sourceIndex
Int32

Position de départ dans cette instance à partir de laquelle les caractères sont copiés. L'index est de base zéro.

destination
Char[]

Tableau vers lequel les caractères sont copiés.

destinationIndex
Int32

Position de départ dans destination où les caractères sont copiés. L'index est de base zéro.

count
Int32

Nombre de caractères à copier.

Attributs

Exceptions

destination a la valeur null.

sourceIndex, destinationIndex ou count est inférieur à zéro.

- ou -

sourceIndex est supérieur à la longueur de cette instance.

sourceIndex + count est supérieur à la longueur de cette instance.

- ou -

destinationIndex + count est supérieur à la longueur de destination.

Exemples

L’exemple suivant illustre la CopyTo méthode.

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

Remarques

La CopyTo méthode est destinée à être utilisée dans les rares situations où vous devez copier efficacement les sections successives d’un StringBuilder objet dans un tableau. Le tableau doit être de taille fixe, préalloué, réutilisable et éventuellement accessible globalement.

Par exemple, votre code peut remplir un StringBuilder objet avec un grand nombre de caractères, puis utiliser la CopyTo méthode pour copier de petits morceaux successifs de l’objet StringBuilder dans un tableau dans lequel les éléments sont traités. Lorsque toutes les données de l’objet StringBuilder sont traitées, la taille de l’objet StringBuilder est définie sur zéro et le cycle est répété.

S’applique à

CopyTo(Int32, Span<Char>, Int32)

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

Copie les caractères d'un segment spécifié de cette instance dans une plage Char de destination.

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)

Paramètres

sourceIndex
Int32

Position de départ dans cette instance à partir de laquelle les caractères sont copiés. L'index est de base zéro.

destination
Span<Char>

Plage accessible en écriture dans laquelle les caractères seront copiés.

count
Int32

Nombre de caractères à copier.

Remarques

La CopyTo méthode est destinée à être utilisée dans les rares situations où vous devez copier efficacement les sections successives d’un StringBuilder objet dans une étendue.

Par exemple, votre code peut remplir un StringBuilder objet avec un grand nombre de caractères, puis utiliser la CopyTo méthode pour copier de petits morceaux successifs de l’objet StringBuilder dans une étendue où les éléments sont traités. Lorsque toutes les données de l’objet StringBuilder sont traitées, la taille de l’objet StringBuilder est définie sur zéro et le cycle est répété.

S’applique à