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我很快就会为您提供解决方案。