2010-07-13 62 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