1

54,000 個のファイルがあり、それぞれの名前付け方法がわずかに異なり、ファイル名に特定の文字列が含まれているかどうかを確認する必要があります。ただし、Select ステートメントを正しく機能させる方法が見つかりません。

コードが予期せず失敗します。「BARITONE」に文字列「BAR」が見つからない理由を誰か教えてください。


Dim tempCheck as string = "1st BARITONE"
Dim GoodOne as Boolean = False
Select Case tempCheck
    Case tempCheck.Contains("CORN")
        GoodOne = True
    Case tempCheck.Contains("HORN")
        GoodOne = True
    Case tempCheck.Contains("BAR")
        GoodOne = True
    Case tempCheck.Contains("TROM")
        GoodOne = True
    Case tempCheck.Contains("EUP")
        GoodOne = True
    Case Else
        GoodOne = False
End Select
4

2 に答える 2

6

次のようにしてみてください。

    Dim tempCheck as string = "1st BARITONE"
    Dim GoodOne as Boolean = False
    Select Case True
        Case tempCheck.Contains("CORN")
            GoodOne = True
        Case tempCheck.Contains("HORN")
            GoodOne = True
        Case tempCheck.Contains("BAR")
            GoodOne = True
        Case tempCheck.Contains("TROM")
            GoodOne = True
        Case tempCheck.Contains("EUP")
            GoodOne = True
        Case Else
            GoodOne = False
    End Select

SELECT CASEは、このような文字列では機能しません (文字列を文字列と比較する必要があります。この場合、ブール値と比較します)。ブール値と比較してブール値で機能します

于 2013-07-31T13:43:04.140 に答える
3

Select Case を間違って使用しています。単純な if else を使用するだけです:

Dim tempCheck As String = "1st BARITONE"
Dim GoodOne As Boolean = False
If tempCheck.Contains("CORN") Then
    GoodOne = True
ElseIf tempCheck.Contains("HORN") Then
    GoodOne = True
ElseIf tempCheck.Contains("BAR") Then
    GoodOne = True
ElseIf tempCheck.Contains("TROM") Then
    GoodOne = True
ElseIf tempCheck.Contains("EUP") Then
    GoodOne = True
End If
于 2013-07-31T13:43:57.690 に答える