帮助String.CopyTo()

时间:2010-07-13 20:04:22

标签: vb.net

我遇到了String.CopyTo()方法的问题。

我正在尝试使用String.CopyTo()方法将值从string复制到char数组。

这是我的代码

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

2 个答案:

答案 0 :(得分:1)

您应该改为调用ToCharArray()方法:

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

答案 1 :(得分:1)

从文档中获取ArgumentOutOfRangeException:

  

sourceIndex,destinationIndex或count为负数

     

-OR -

     

count大于从startIndex到此实例末尾的子字符串的长度

     

-OR -

     

count大于从destinationIndex到目标结尾的子数组的长度

第一种情况并非如此,因为这些值为零或正数。

所以必须是目标数组的计数太大了。而不是硬编码长度做这样的事情:

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