Vb.net 通过数组解析下一个循环Visual Basic
我被困在这里了。花了几个小时尝试了许多不同的方法,但没有任何效果 我有一个数组,其中包含如下所示的文本Vb.net 通过数组解析下一个循环Visual Basic,vb.net,Vb.net,我被困在这里了。花了几个小时尝试了许多不同的方法,但没有任何效果 我有一个数组,其中包含如下所示的文本 4456|4450|17 4466|4430|18 4446|4420|19 4436|4410|20 4456,4466,4446,4436 分隔符是一个pica(“|”) 我试图做的是在数组中运行,并在单独的字符串中提取前两列,以比较值,查找最大值和最小值 我想用这样一根绳子来结束 4456|4450|17 4466|4430|18 4446|4420|19 4436|4410|20
4456|4450|17
4466|4430|18
4446|4420|19
4436|4410|20
4456,4466,4446,4436
分隔符是一个pica(“|”)
我试图做的是在数组中运行,并在单独的字符串中提取前两列,以比较值,查找最大值和最小值
我想用这样一根绳子来结束
4456|4450|17
4466|4430|18
4446|4420|19
4436|4410|20
4456,4466,4446,4436
以下是解决方案:
Dim source As String = prices
Dim stringSeparators() As String = {vbCrLf}
Dim result() As String
result = source.Split(stringSeparators,
StringSplitOptions.RemoveEmptyEntries)
Dim fString As String = String.Join(Of String)(", ", result.Cast(Of String).Select(Of String)(Function(x) x.Split("|")(0)))
MsgBox(fString)
让我们以你下面的例子
4456|4450|17
4466|4430|18
4446|4420|19
4436|4410|20
prices = [the array shown above]
For Each i As String In prices
high = (i.Split("|"))(0)
highs = highs & highs1 & ","
MsgBox(highs)
Next
之所以得到4,4,5,6,4,4,5,0,1,7
,是因为对于每个字符串,您在|
上拆分,然后取第一个字符并在其中添加逗号
如果要在|
之前获取第一列或索引,则需要遍历该数组中的每个字符串并选择值
'this is my test array...
Dim arr As New ArrayList From {"4456|4450|17", "4466|4430|18", "4446|4420|19", "4436|4410|20"}
现在我们可以使用String.Join
函数,将每个项目的数组转换为字符串,最后选择拆分中的第一个项目。这将获取|
前面的每个项目,并将它们放在一个用逗号分隔的字符串中
Dim fString As String = String.Join(Of String)(", ", arr.Cast(Of String).Select(Of String)(Function(x) x.Split("|")(0)))
如果需要第二部分,请选择第一个索引,因为数组从0开始
Dim sString As String = String.Join(Of String)(", ", arr.Cast(Of String).Select(Of String)(Function(x) x.Split("|")(1)))
这是我的输出截图
您显示的示例与当前输出不符。要么数组错误,要么获取的值错误。例如,第一个数组应该是4456 | 4450 | 17还是4456、4466、4446、4436。还显示如何填充此数组。我可以帮忙,但你可能把这些放错了,我也可以解释一下。你很可能想要一个列表来保存你的字符串…不知道如何在这里发布屏幕截图,但数组与我显示的完全一样。出于某种原因,For Next循环将逐个解析每个字符。我不知道为什么这么高?你确定它也是数组吗?这是vb.net还是vb6?不可能两者都有。请编辑您的问题以删除不适用的标记。@user6096423我很快就会为您提供解决方案。