Что такое String.CopyTo?

голоса
2

Может ли один объяснить, почему выход этого кода только «привет» и что означает этот код?

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

Выход показано:

Массив символов: привет

Код следующим образом:

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 ] );
Задан 09/12/2008 в 18:25
источник пользователем
На других языках...                            


3 ответов

голоса
5

Это потому, что ваш массив устанавливается только для 5 символов. Расширьте его до 11, и он будет работать.

Вот что CopyTo является:

public void CopyTo(
    int sourceIndex,
    char[] destination,
    int destinationIndex,
    int count
)
параметры
sourceIndex
Тип:. System .. :: Int32
Позиция символа в данном случае. 

место назначения
Тип: массив [] () []
Массив символов Unicode. 

destinationIndex
Тип:. System .. :: Int32
Элемент массива в пункте назначения. 

подсчитывать
Тип:. System .. :: Int32
Количество символов в этом случае, чтобы скопировать в пункт назначения. 

Взято из: http://msdn.microsoft.com/en-us/library/system.string.copyto.aspx

Ответил 09/12/2008 в 18:28
источник пользователем

голоса
2

Это показывает только «привет» , потому что массив ваш персонаж имеет длину всего 5 символов. Что касается параметров в CopyTo, прочитать http://msdn.microsoft.com/en-us/library/system.string.copyto.aspx

Ответил 09/12/2008 в 18:28
источник пользователем

голоса
0

Это потому, что ваш персонаж размер массива только 5. Если вы хотите всю строку как массив, вы можете string.ToCharArray вместо

Ответил 09/12/2008 в 18:31
источник пользователем

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