2010-07-13 57 views
0

我面臨String.CopyTo()方法的問題。幫助與String.CopyTo()

我想從字符串複製到char數組使用String.CopyTo()方法的值。

這裏是我的代碼

Dim strString As String = "Hello World!" 

Dim strCopy(12) As Char 

strString.CopyTo(0, strCopy, 0, 12) 

For Each ch As Char In strCopy 
    Console.Write(ch) 
Next 

任何一個可以點我在正確的方向?

謝謝。

編輯:我在運行時得到這個錯誤。 ArgumentOutOfRangeException 索引和計數必須引用字符串中的位置。 參數名:sourceIndex

+1

什麼問題? – ChrisF 2010-07-13 20:05:14

+0

對不起,我忘了提及這個錯誤。 – Searock 2010-07-13 20:09:47

+2

你不應該使用匈牙利符號(擺脫'str'前綴) – SLaks 2010-07-13 20:10:57

回答

1

從文檔您得到ArgumentOutOfRangeException時:

sourceIndex,destinationIndex,或者count爲負

- 或 -

計數大於將從startIndex子串的長度,以本實例的結尾

- 或 -

計數大於從destinationIndex子陣列的長度到目的地的端部的大於

第一種情況是不正確的,因爲這些值爲零或正數。

所以它必須是目標數組的計數太大。而不是硬編碼的長度做這樣的事情:

strSource.CopyTo (0, destination, 4, strSource.Length); 
+1

長度不是太大。「Hello World!」。長度是'12'。 – SLaks 2010-07-13 20:13:12

+1

感謝您的回答,我發現我的問題,主要問題是,我在我的程序中使用了substring方法,它減小了strString的大小。 – Searock 2010-07-13 20:20:45

1

你應該調用ToCharArray()方法代替:

Dim strCopy As Char() = strString.ToCharArray() 
+0

感謝您的建議,但我需要堅持String.CopyTo()方法出於某種原因:( – Searock 2010-07-13 20:14:34