在 VB.NET 中将字符数组转换为字符串数组

4

我正在尝试将一个字符数组转换为字符串数组(其中每个字符成为一个字符串),因为我需要它成为一个字符串数组,以便稍后在程序中对该数组进行处理。这是我使用的代码:

Dim inputexpression As String = UCase(txtInput.Text)
Dim arrinputexpressionchar() As Char = inputexpression.ToCharArray()
Dim arrinputexpression() As String

For i = 0 To arrinputexpressionchar.Length
    arrinputexpression(i) = Char.ToString(arrinputexpressionchar(i))
Next

然而,这会引发“NullReferenceException was unhandled”(对象引用未设置为对象的实例)错误。为什么这段代码不起作用?

错误信息中是否说明了出错的代码行数? - Tom Bowers
For 循环中不需要使用 i += 1 - bendataclear
1个回答

5

您声明了但未初始化字符串数组。

您可以使用LINQ:

Dim charsAsStringArray = inputexpression.
    Select(Function(c) c.ToString()).
    ToArray()

这里提供一种非LINQ的方法:
Dim strArray(inputexpression.Length - 1) As String
For i = 0 To charArray.Length - 1
    strArray(i) = inputexpression(i).ToString()
Next

第一行的必要性是什么?inputexpression(index) 应该已经足够了吧? - igrimpe
什么是“第一行”?第一个代码片段只有一行,而第二个(“非Linq”)则具有此第一行:Dim charArray = inputexpression.ToCharArray() - Tim Schmelter
Dim charArray = inputexpression.ToCharArray() 但是也可以使用 Dim charsAsStringArray = inputexpression.ToCharArray(). 为什么要使用 .ToCharArray 呢?因为字符串已经被视为字符数组,所以你可以直接使用 inputexpression.Select() 吗? - igrimpe
@igrimpe:好观点,我已经编辑了我的回答。那只是一个复制粘贴的问题。谢谢。 - Tim Schmelter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接