-3

我在尝试使用线性搜索来查找用户在数组中输入的名称时遇到此错误。这是我声明数组并获取输入的时候。

Public Const SIZE_ARRAY = 9

Public Sub cmdStart_Click(sender As Object, e As EventArgs) Handles cmdStart.Click

Dim myArray(SIZE_ARRAY) As String
Dim index As Integer
Public Sub cmdStart_Click(sender As Object, e As EventArgs) Handles cmdStart.Click
    Dim count As Integer = 0

    For Me.index = 0 To SIZE_ARRAY
        myArray(index) = InputBox("Enter a name, Enter a name")
        count = count + 1
    Next

If count = 10 Then
        lblInstructions.Visible = False
        cmdStart.Visible = False
        lblInstructions2.Visible = True
        txtSearch.Visible = True
        lblOutput.Visible = True
        cmdSearch.Visible = True
    End If
End Sub

这是我使用线性搜索的地方。

Public Sub cmdSearch_Click(sender As Object, e As EventArgs) Handles cmdSearch.Click
    Dim found As Boolean
    Dim name As String

    name = txtSearch.Text

    found = LinearSearch(myArray, Val(name))

    If found Then
        lblOutput.Text = name & " was found at cell " & index
    Else
        lblOutput.Text = name & " was not found"
    End If

End Sub

这是线性搜索功能

Public Function LinearSearch(ByVal list() As Integer, ByVal searchValue As Integer) As Boolean
    Dim found As Boolean = False
    Dim index As Integer
    While found = False And index <= UBound(list)
        If list(index) = searchValue Then
            found = True
        Else
            index += 1
        End If
    End While
    Return found
End Function
4

1 回答 1

0

myArray是一个String数组,但您的方法LinearSearch需要两个参数:一个Integer数组和一个Integer. 我假设您需要搜索的数组是 type String,并且搜索值也是 typeString

我的 VB.NET 生锈了,但这里有一些未经测试的线性搜索代码。

Public Function LinearSearch(ByVal list() As String, ByVal searchValue As String) As Boolean
        For Each item As String In list
            If item = searchValue Then
                 Return True
            End If 
        Next
        Return False
End Function  
于 2016-04-20T02:31:04.213 回答