如何让数组一次性显示所有值

4
这里有一些示例代码:

Dim arrValue(3) as Integer
arrValue(0) = 5
arrValue(1) = 4
arrValue(2) = 7
arrValue(3) = 1

我该如何将这四个值并排显示?
更具体地说,给定这些值,我怎样才能使txtValue.Text = 5471?
编辑:
我的想法是使用某种函数来通过循环将每个值附加到末尾。
Dim finalValue
For i As Integer = 3 To 0 Step -1
    arrValue(i).appendTo.finalValue
Next

显然,尽管前提是正确的,但那段代码不会起作用。我不知道追加内容的语法,而且我确定我无法直接追加整数,我需要先将每个值转换为字符串。

5个回答

15

另一种方法是使用String.Join:

Sub Main
    Dim arrValue(3) as Integer
    arrValue(0) = 5
    arrValue(1) = 4
    arrValue(2) = 7
    arrValue(3) = 1

    Dim result As String = String.Join("", arrValue)

    Console.WriteLine(result)
End Sub

有没有办法可以反转它连接的方向?它从arrValue(0)开始构建字符串,但我希望它从上往下写到arrValue(0)。换句话说,使用此方法时,它返回001,而我希望它返回100。我该怎么修复它? - Mark Kramer
旧帖子,但可能对其他人有用 - 关于如何获得相反的输出顺序,您可以使用Array.Reverse(arrValue)来反转数组中值的顺序。 - David Thompson

1

将整数转换为字符串,并将它们连接起来:

Dim result as String = ""
For Each value as Integer in arrValue
  result += value.ToString()
Next

注意:如果你有很多字符串需要连接,使用+=来连接字符串的性能表现会很差。这时你应该使用StringBuilder
Dim builder as New StringBuilder()
For Each value as Integer in arrValue
  builder.Append(value)
Next
Dim result as String = builder.ToString()

StringBuilder听起来像是我需要的,但我不知道它是什么,也不知道如何使用它。我需要一个在上述情况下它如何工作的例子。 - Mark Kramer
@MarkKramer:我在上面添加了一个例子。 - Guffa
VB.net完全不认识StringBuilder。你提供的示例和其他与StringBuilder相关的示例都返回了构建错误。 - Mark Kramer
你只是没有导入 StringBuilder 类所在的命名空间。使用 System.Text.StringBuilder,或者导入 System.Text 命名空间。 - Guffa
好的,作为参考,这种东西应该包含在你的答案中 =p - Mark Kramer
3
@MarkKramer说:“这不是每个答案都可以包含的内容。有些事情必须假定,就像我假定你知道如何复制代码并将其粘贴到代码的正确位置,以及你可以通过重命名变量等方式调整代码以适应你的需求。” - Guffa

1
如果我理解你的问题正确,你可以使用 StringBuilder 将这些值连接在一起。
Dim finalValue as StringBuilder
finalValue = new StringBuilder()
For i As Integer = 3 To 0 Step -1
    finalValue.Append(arrValue(i))
Next

然后只需返回finalValue.ToString()


嗯,我需要进行一些测试,看看我能做什么。谢谢!如果有效,我将点赞并接受您的答案。 - Mark Kramer
VB.net完全不识别StringBuilder。在你的示例和其他与StringBuilder相关的示例中,都返回了构建错误。 - Mark Kramer
抱歉,您需要添加 Imports System.Text - Justin Self
放在哪里?这个要放在声明中吗? - Mark Kramer

0
for i = lbound(arrValue) to ubound(arrValue)
ss=ss & arrValue(i)
next i
end for 
debug.print ss

2
感谢您的贡献,但更好的做法是解释一下您的解决方案,并使用代码块格式以产生更易读的文本。 - theCuriousOne
1
欢迎来到 Stack Overflow!虽然这段代码可能解决了问题,但包括解释它是如何解决问题的,以及为什么能够解决问题,将有助于提高你的帖子质量,并可能获得更多的赞。请记住,你正在为未来的读者回答问题,而不仅仅是现在提问的人。请编辑您的答案并添加解释,表明适用的限制和假设。【来自评论】 - double-beep

-1
Dim value as string = ""


For A As Integer = 1 To Begin.nOfMarks
   value += "Mark " & A & ": " & (Begin.Marks(A)) & vbCrLf 
Next A

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