O que é String.CopyTo?

votos
2

Qualquer um pode explicar por que a saída desse código é único 'Olá' eo que significa esse código?

( 0, characterArray, 0, characterArray.Length );

A saída está mostrando:

A matriz de caracteres é: Olá

O código a seguir:

string string1 = hello there;
char[] characterArray = new char[ 5 ];

string1.CopyTo( 0, characterArray, 0, characterArray.Length );
Console.Write( \nThe character array is:  );

for ( int i = 0; i < characterArray.Length; i++ )
    Console.Write( characterArray[ i ] );
Publicado 09/12/2008 em 18:25
fonte usuário
Em outras línguas...                            


3 respostas

votos
5

É porque sua matriz só é definido para 5 caracteres. Expandi-lo para 11 e ele vai trabalhar.

Aqui está o que o copyTo é:

public void CopyTo(
    int sourceIndex,
    char[] destination,
    int destinationIndex,
    int count
)
parâmetros
sourceIndex
Tipo: System .. ::. Int32
A posição do caractere neste caso. 

destino
Tipo: array [] () []
Uma matriz de caracteres Unicode. 

destinationIndex
Tipo: System .. ::. Int32
Um elemento da matriz no destino. 

contagem
Tipo: System .. ::. Int32
O número de caracteres, neste caso, para copiar para o destino. 

Retirado de: http://msdn.microsoft.com/en-us/library/system.string.copyto.aspx

Respondeu 09/12/2008 em 18:28
fonte usuário

votos
2

Ele só está mostrando 'Olá', porque a sua matriz de caracteres é de apenas 5 caracteres de comprimento. Quanto aos parâmetros para CopyTo, leia http://msdn.microsoft.com/en-us/library/system.string.copyto.aspx

Respondeu 09/12/2008 em 18:28
fonte usuário

votos
0

Isso porque o seu tamanho array de caracteres só é 5. Se você quiser toda a cadeia como uma matriz, você pode string.ToCharArray vez

Respondeu 09/12/2008 em 18:31
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more