将数组项显示为以逗号分隔的文本框,并以“)”结尾

时间:2014-05-10 02:46:23

标签: arrays vb.net

我有一个从树视图动态添加的列表框,我想要做的是将列表框中的项目放入数组中,然后显示数组的项目(用逗号分隔(如果是项目) > 1)并在文本框中以“)”结束。到目前为止,我只用逗号实现了分离。 有人可以帮我吗?以下是我的代码

Public Sub Array()
    Dim LboxItems As Integer = listbox.Items.Count
    Dim countBox As Integer = LboxItems - 1
    ReDim arrayTest(LboxItems)
    For item = 0 To countBox
        arrayTest(item) = listbox.Items(item).ToString
        txtboxOut = String.Join(", ", arrayTest)
    Next
    txtboxOut.Text = outMun
    If LboxItems = 0 Then
        Array.Clear(arrayMTest, 0, arrayMTest.Length)
        txtOut.Text = arrayTest(0)
    End If
End Sub

txtboxOut应该显示:

如果是数组项> 1

<item0>, <item1>, ... , <itemN>)

如果数组项= 1

<item0>)

1 个答案:

答案 0 :(得分:0)

您发布的代码中有一些不明确的内容:

txtboxOut.Text = outMun

什么是outMun,它在哪里分配?此外,什么是arrayMTest,为什么当你似乎没有用它做任何事情时你清除它?

最后,以下代码行:

txtboxOut = String.Join(", ", arrayTest)

在构建数组后应该调用一次。而且我认为它也应该是txtboxOut.Text

说完所有这些后,下面的代码片段应该可以实现您所需要的功能(请注意,您的代码中没有任何地方可以将)添加到字符串的末尾,这就是为什么您需要&# 39;没有看到它。

Public Sub Array()

    If listbox.Items.Count > 0 Then
        ReDim arrayTest(listbox.Items.Count)

        For item = 0 to listbox.Items.Count - 1

            arrayTest(item) = listbox.Items(item).ToString()
        Next

        txtboxOut.Text = String.Join(", ", arrayTest) + ")"
    Else
        txtboxOut.Text = String.Empty
    End If
End Sub

简而言之,上面的代码检查ListBox中是否有任何项目。如果有,则循环遍历Items集合并将每个项目添加到arrayTest。循环完成后,它使用String.Join制作以逗号分隔的列表并添加&#34;)&#34;到最后。

如果ListBox中没有项目,它会为TextBox分配一个空字符串。

这是一种方法 - 还有其他方法,其中一些甚至不使用数组。