为每个循环使用单个两个数组

时间:2013-05-20 12:53:37

标签: vb.net split

在我的应用程序中,我有这样的字符串1,2,3&&4,5,6。现在我想检查每个循环中的每个元素。有可能吗?如果可能的话我怎么能实现这个目标?。

尝试使用split方法。但如果我使用split方法,我想要的不仅仅是循环。

dim sa as string=1,2,3&&4,5,6

for each x as string in sa.split("&&")
  for each y as string in x.split(",")
    ''' Here My Process
  next
next

怎么能过来呢?怎么能改成单循环?有可能吗?。

4 个答案:

答案 0 :(得分:2)

据我了解,您只想在for each中使用一个for each而不是for each

您可以先拆分“&&”然后加入“,”:

dim sa as string=1,2,3&&4,5,6
dim stringArray = String.Join(",", sa.split("&&")).split(",")

for each x as string in stringArray
end for

答案 1 :(得分:2)

String.Split有一个重载,它接受一个字符串分隔符数组:

Dim input As String = "1,2,3&&4,5,6"
For Each element As String In input.Split({",", "&&"}, StringSplitOptions.None)
  'do your processing on (1,2,3,4,5,6)
Next

答案 2 :(得分:0)

您可以使用正则表达式作为分隔符进行拆分:

Imports System.Text.RegularExpressions 'goes at the top of the module

For Each x As String In Regex.Split(sa, "\,|&&")

正则表达式表示“逗号或两个&符号”。请注意,您需要使用反斜杠“转义”逗号;这是因为逗号在正则表达式中做了一些特殊的事情。

不要忘记将字符串括在引号中:

dim sa as string="1,2,3&&4,5,6"

答案 3 :(得分:0)

一种选择是拆分“,”和“&”通过Split方法并忽略空条目,如下:

Dim sa As String = "1,2,3&&4,5,6"
Dim split As String() = sa.Split(New Char() {",", "&"}, StringSplitOptions.RemoveEmptyEntries)

For Each value In split
    Debug.WriteLine(value)
Next