我遇到了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
答案 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 );