二进制搜索数组

时间:2016-05-11 14:58:52

标签: arrays

我有这段代码

    Dim intSelection As Integer
    Dim intIndexLocation As Integer


    intSelection = cboGenres.SelectedIndex
    intIndexLocation = Array.BinarySearch(strGenre, intSelection)

    If intIndexLocation >= 0 Then
        lstPlayList.Items.Add(strSongs(intIndexLocation))

    End If

strGenre是我的数组但是我收到错误说"无法比较数组中的两个元素。"我不明白为什么这不起作用

1 个答案:

答案 0 :(得分:0)

strGenre是什么类型的?如果您要搜索的类型未实现比较运算符,则会发生此错误。

当BinarySearch命令尝试比较strGenre的元素时,它会失败。你可以:

  1. 使用内置类型(如String,假设strGenre是一个类似字符串的类型数组);

  2. 使用自定义类型,并通过实现IComparable为该类型实现自己的比较运算符。

  3. This link might help.