在VB.NET中,我试图确定字符串数组中存在的给定字符串。根据我的研究,Array有一个我可以使用的'Contains'方法,所以Code看起来像这样:
Dim fileTypesZ As String() = {"PDF", "TXT", "DOC", "DOCX", "XLS", "XLSX", "JPG", "JPGE", "BMP", "GIF"}
If (fileTypesZ.Contains(tempTest)) Then
End If
然而,VB.NET说'Contains'不是'System.Array'的成员。还有其他方法可供我使用吗?
答案 0 :(得分:11)
Contains
上没有Array
,但有Enumerable.Contains
,这是一种适用于数组的扩展方法。
请务必在文件顶部加{4},并在项目参考中引用Imports System.Linq
。
答案 1 :(得分:2)
您使用的是哪种框架?我在4 Full中运行它并且它有效:
Sub Main()
Dim fileTypesZ As String() = {"PDF", "TXT", "DOC", "DOCX", "XLS", "XLSX", "JPG", "JPGE", "BMP", "GIF"}
If (fileTypesZ.Contains("PDF")) Then
MsgBox("Yay")
End If
End Sub
请记住array.contains使用相等,因此“PDF”起作用,“PD”不起作用。如果要查找部分匹配,则可能需要使用indexof进行迭代。
在这种情况下尝试: Dim fileTypesZ As String()= {“PDF”,“TXT”,“DOC”,“DOCX”,“XLS”,“XLSX”,“JPG”,“JPGE”,“BMP”,“GIF”}
If (fileTypesZ.Contains("PD")) Then
MsgBox("Yay")
Else
For i = 0 To fileTypesZ.Length - 1
If fileTypesZ(i).IndexOf("PD") = 0 Then
MsgBox("Yay")
End If
Next
End If