首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么判断数组中是否有某元素

2013-10-01 
如何判断数组中是否有某元素本帖最后由 bcrun 于 2013-08-04 11:36:04 编辑Sub A()Dim vArrayA New Stri

如何判断数组中是否有某元素
本帖最后由 bcrun 于 2013-08-04 11:36:04 编辑

    Sub A()
        Dim vArrayA = New String("A", "B", "C")
        Dim vMatch As Predicate(Of String)
        Dim B As Boolean
        B = Array.Exists(vArrayA, vMatch)
    End Sub



总是提示错误:

错误13无法从这些实参推断方法“Public Shared Function Exists(Of T)(array() As T, match As System.Predicate(Of T)) As Boolean”中类型形参的数据类型。显式指定数据类型可更正此错误。


该如何处理呢?
[解决办法]
哈哈,现在意识到.net的门槛还是有点高了吧。其实这东西我找了半天,包括msdn lib,都没找到够详细的资料。不过,参考帮助还是可以有所得的。
首先,你第一句把vArrayA定义为一个String可能就是搞错了。参考一下我的代码

    Sub A()
        'Dim vArrayA = New String("A", "B", "C")
        Dim vArrayA() as String= {"A", "B", "C"}
        Dim vMatch As Predicate(Of String)
        Dim B As Boolean
        vMatch= AddressOf StringMatch
        B = Array.Exists(vArrayA, vMatch)
        listBox1.Items.Add( B.ToString())
    End Sub
    
    Sub TestExist()
        Dim dinosaurs() As String = {"Compsognathus", _
            "Amargasaurus", "Oviraptor", "Velociraptor", _
            "Deinonychus", "Dilophosaurus", "Gallimimus", _
            "Triceratops"}

        Dim B As Boolean
        B = CType(dinosaurs, IList).Contains("Gallimimus")
        listBox1.Items.Add( B.ToString())
    End Sub
    
Sub MainFormLoad(sender As Object, e As EventArgs)
A
TestExist
End Sub
    
    Private Function StringMatch(s As String) As Boolean

'        return s == II[i].ToString()
        Return s = "B"
    End Function

[解决办法]
VB.NET可以使用Contains函数:
Dim data() As String = { "A", "B", "C" }
If data.Contains("B") Then
    MsgBox "包含B"
End If

热点排行