2017-08-20 6 views
0

したがって、ファイルがビデオ/オーディオ形式であるかどうかを確認するプログラムを作成しています。 これを行うために、私は(曲System.IO.FileInfoである)、このコードを持っている:VB.NETでIFの条件をループする短縮された方法はありますか?

If Song.Extension.ToUpper = ".MP4" Or Song.Extension = ".AVI" Or Song.Extension = ".MP3" Or Song.Extension = ".AA" Or Song.Extension = ".M4A" Or Song.Extension = ".AIFF" Or Song.Extension = ".WAV" Or Song.Extension = ".M4V" Or Song.Extension = ".AAC" Or Song.Extension = ".VOB" Then 

問題は、これが最初の2つの条件をチェックすることです。 これを別々のIfに分割する必要がありますか、またはすべての条件を1行でテストする方法はありますか?

+1

最初の2つの条件を確認する方法は分かっていますか?あなたは残りの部分で '.ToUpper'を忘れてしまったのです。 – Ryan

+0

@Ryanありがとう!私は'ToUpper 'を追加しました。ところで、私は「または」の記述のために最初の2つしかしないと思った。 – LordPhantom

答えて

6

あなたはその中のすべての拡張子を持つセットを行うことができます。

Dim extensions As New HashSet(Of String) From { 
    ".mp4", ".avi", ".mp3", ".aa", ".m4a", ".aiff", ".wav", 
    ".m4v", ".aac", ".vob" 
} 

と値がContainsとそれにあるかどうかを確認:

If extensions.Contains(Song.Extension.ToLower()) Then 
    ⋮ 
End If 
1

それは簡単だろうと私には思えます1つのケースだけの選択ケース構成を使用する:

Select Case Song.Extension.ToLower 
     Case ".mp4", ".avi", ".mp3", ".aa", ".m4a", ".aiff", ".wav", ".m4v", ".aac", ".vob" 
      'Do something 
    End Select 
+0

チェックする条件が1つだけの場合は、大文字小文字の区別がありません。 – Karuntos

+0

なぜそれは意味をなさないのですか? – Patrick

+0

'Select Case'ステートメントの1つの条件だけをチェックしています。 – Karuntos

関連する問題