'1-dimensional array of String' 类型的值无法转换为 '1-dimensional array of Integer' 'String'因为该值不是从'In



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

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

myArrayString数组,但方法LinearSearch需要两个参数:Integer数组和Integer。我假设您需要搜索的数组类型为String,并且搜索值也是String 类型

我的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  

最新更新