在vb.net中构建大型字符串
我有一个有3个选项卡的表单,用户将填充表单上的下拉列表,然后按save 然后我将字符串写入一个文本文件,每个答案之间都有一个分隔符,除了下面我所做的,还有更好的方法吗在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
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中编写了一个编译和运行的测试应用程序。