读书人

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

发布时间: 2013-10-01 12:15:56 作者: rapoo

如何判断数组中是否有某元素
本帖最后由 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

读书人网 >VB

热点推荐