Arrays 正确设置循环/如果语句

Arrays 正确设置循环/如果语句,arrays,vb.net,Arrays,Vb.net,我目前正在创建一个程序,它将接受用户输入 如果用户输入包含。,则变量子字符串将等于该输入的前4个字符(0,4)。 从那里开始,运行一个循环,循环一个数组,在该循环中有一个If语句,确定数组是否包含子字符串。如果是这样,则包含子字符串的数组元素的位置等于不同元素数组的相同位置。如果该数组中的任何元素不包含子字符串,则MsgBox将显示“错误” 当前,如果用户输入的文本实际上是数组中包含的该输入的子字符串,则它仍会提示错误消息,并显示正确的结果。我如何正确地设置它,如果在数组中找不到子字符串,Msg

我目前正在创建一个程序,它将接受用户输入

如果用户输入包含
,则变量子字符串将等于该输入的前4个字符(0,4)。
从那里开始,运行一个循环,循环一个数组,在该循环中有一个
If
语句,确定数组是否包含子字符串。如果是这样,则包含子字符串的数组元素的位置等于不同元素数组的相同位置。如果该数组中的任何元素不包含子字符串,则MsgBox将显示“错误”

当前,如果用户输入的文本实际上是数组中包含的该输入的子字符串,则它仍会提示错误消息,并显示正确的结果。我如何正确地设置它,如果在数组中找不到子字符串,MsgBox将提示错误,如果是,则只执行正确的结果。以下是我目前拥有的:
是的,我知道两个数组不包含相同数量的元素,我只是测试前三个值

Dim i作为整数
作为字符串的Dim子字符串
Dim IdValues=新字符串(){“ADC_123”、“AAA_123”、“AAB_123”、“EFGH_公司”、“ABB_456”、“ABC_456”}
Dim ValueValues=新字符串(){“快乐”、“悲伤”、“疯狂”、“兴奋”、“快乐”}
作为Char的Dim charText
ChartText=“"”
If txtDataEntry.Text.Contains(ChartText)然后使用“If”语句确定文本是否包含“\
subString=txtDataEntry.Text.subString(0,4)”将变量subString设置为文本数据的子字符串
对于i=0到IdValues.Length-1'循环数组
如果IdValues(i).Contains(子字符串)和txtDataEntry.Text.Contains(IdValues(i))则
MsgBox(“成功,职位在职位上”&i)
IdValues(i)=ValueValues(i)'新数组位置现在等于找到子字符串的IdValue数组
lblValueResult.Text=IdValues(i)'将结果打印到标签
其他的
MsgBox(“错误”)
如果结束
接下来我
其他的
MsgBox(“对不起,找不到值。”)
如果结束
因此,如果用户输入
AAA_123
,它将创建一个子字符串
AAA_
,并确定
IdValues
数组是否包含该子字符串。它提示正确执行,但也提示错误消息。我应该如何正确设置它


感谢您的帮助

对这些类型的迭代过程使用布尔值总是比使用if-else更好。请尝试下面的答案

 Dim isValueFound As Boolean = False

        Dim i As Integer
        Dim subString As String
        Dim IdValues = New String() {"ADC_123", "AAA_123", "AAB_123", "EFGH_Company", "ABB_456", "ABC_456"}
        Dim ValueValues = New String() {"Happy", "Sad", "Mad", "Excited", "Joyful"}
        Dim charText As Char
        charText = "_"

        If txtDataEntry.Text.Contains(charText) Then ' if statement to determine if text contains a "_"
            subString = txtDataEntry.Text.Substring(0, 4) 'sets variable subString to a substring of text data
            For i = 0 To IdValues.Length - 1 'looping through array
                If IdValues(i).Contains(subString) And txtDataEntry.Text.Contains(IdValues(i)) Then
                    MsgBox("Success, the position is at position " & i)
                    IdValues(i) = ValueValues(i) 'new array position now equals the IdValue array where the substring is found
                    lblValueResult.Text = IdValues(i) 'prints outcome to label
                    isValueFound = True
                    Exit For
                End If
            Next i


            If isValueFound = False Then
                MsgBox("Error : Not Found")
            End If

        Else
            MsgBox("Sorry, no value was found.")
        End If

删除内部的
Else
分支,使用布尔标志
found
。找到匹配项时,将其设置为
true
,然后添加
exit for
。循环结束后,如果
发现
仍为
错误
,则显示“错误”。