5

VB.NET では、特定の文字列が文字列配列に存在するかどうかを判断しようとしています。私の調査によると、配列には使用できる「Contains」メソッドがあるため、コードは次のようになります。

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」のメンバーではないと言っています。私が使用できる別の方法はありますか?

4

2 に答える 2

12

Containsonはありませんが、配列で機能する拡張メソッドである がありますArrayEnumerable.Contains

Imports System.Linqファイルの先頭に必ず含めSystem.Core.dll、プロジェクト参照で参照していることを確認してください。

于 2013-09-27T17:46:58.443 に答える
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
于 2013-09-27T20:35:15.263 に答える