在vb.net中构建大型字符串

在vb.net中构建大型字符串,vb.net,string,visual-studio-2008,variables,Vb.net,String,Visual Studio 2008,Variables,我有一个有3个选项卡的表单,用户将填充表单上的下拉列表,然后按save 然后我将字符串写入一个文本文件,每个答案之间都有一个分隔符,除了下面我所做的,还有更好的方法吗 Dim tesstring As String = " test " & _ Separator & _ answer1 & _ Separator & _ answer2 & _ Separator

我有一个有3个选项卡的表单,用户将填充表单上的下拉列表,然后按save

然后我将字符串写入一个文本文件,每个答案之间都有一个分隔符,除了下面我所做的,还有更好的方法吗

Dim tesstring As String = " test " & _
         Separator & _
         answer1 & _
         Separator & _
         answer2 & _
         Separator & _
         answer 3 & _
         Separator & _
         answer4 & _
         Separator & _
         answer5 & _
         Separator & _
         Combo_BS.SelectedItem.ToString.Substring(0, 6) & _
         Separator & _
         answer6 & _
         Separator & _
         answer7 & _
         Separator & _
         answer8 & _
         Separator & _
         answer9 & _
         Separator & _
         answer10 & _
         Separator & _
         answer11 & _
         Separator & _
         answer12 & _
         Separator & _
         answer13 & _
         Separator & _
         answer14 & _
         Separator & _
         answer15 & _
         Separator & _
         answer16 & _
         Separator & _
         answer17 & _
         Separator & _
         answer18 & _
         vbCrLf
除了我下面所做的,还有更好的方法吗

Dim tesstring As String = " test " & _
         Separator & _
         answer1 & _
         Separator & _
         answer2 & _
         Separator & _
         answer 3 & _
         Separator & _
         answer4 & _
         Separator & _
         answer5 & _
         Separator & _
         Combo_BS.SelectedItem.ToString.Substring(0, 6) & _
         Separator & _
         answer6 & _
         Separator & _
         answer7 & _
         Separator & _
         answer8 & _
         Separator & _
         answer9 & _
         Separator & _
         answer10 & _
         Separator & _
         answer11 & _
         Separator & _
         answer12 & _
         Separator & _
         answer13 & _
         Separator & _
         answer14 & _
         Separator & _
         answer15 & _
         Separator & _
         answer16 & _
         Separator & _
         answer17 & _
         Separator & _
         answer18 & _
         vbCrLf
对。创建所有值的数组,然后使用:


理想情况下,不要有18个不同的
答案
变量作为开始-这些变量不能在一个集合中吗?

要扩展Jon的答案,请创建一个答案集合。 例如,如果所有答案都在名为“Panel1”的面板中的文本框中:

    Dim answers = From x In Me.Panel1.Controls.OfType(Of TextBox)() Select x.Text
    Dim tesstring As String = String.Join(Separator, answers)

编译器为您执行此操作:@Polity:不完全-编译器使用
String.Concat
。请注意,此处的值不是常量,因此编译器无法在编译时执行完整的连接。但关键是,使用
String.Join
的代码在这里比使用字符串串联更简单,因为您只需要指定一次分隔符。嗨,Jon,我对VB.Net很陌生,您能详细介绍一下重新创建数组以及重新收集的含义吗?
dim arr as String(){回答1,回答2,回答3…}
.Collection->通常是一个数组或一个列表。@user1295053:正如Teejay所说……但真正学习这类东西应该从一本好书中获得。堆栈溢出有利于回答特定的问题,但不利于整体学习语言。不知道它是否会编译,可能需要
answers.ToArray()
编译很好,答案是IEnumerable(Of String)
String。Join
接受
String[]
,而不是
IEnumerable
刚刚尝试过。它编译后会出现运行时错误:
无法将whereselectArrayInterator`2[System.String,System.String]'类型的对象强制转换为'System.String[]
。With
.ToArray()
工作正常!奇怪的是,string.join有一个接受IEnumerable(字符串的)的重载:我刚刚在vs2010.net4 option strict中编写了一个编译和运行的测试应用程序。