VB.NET Array Contains方法不起作用

时间:2013-09-27 17:44:15

标签: asp.net arrays vb.net

在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'的成员。还有其他方法可供我使用吗?

2 个答案:

答案 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