2012-11-30 56 views
1

嘿所有我有以下代碼:檢查的一些推廣的更好的方式

Dim validFileTypes As String() = {".bmp", ".gif", ".png", ".jpg", ".jpeg", ".tif"} 

For x = 0 To NumberOfBoxes - 1 
     With myTxtData(x) 
      If Not Fields("customField" & z).Value.Equals(DBNull.Value) Then 
       If InStr(Fields("customField" & z).Value, "@") <> 0 Then 
        'Lower case the email address 
        .Text = StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase) 
       ElseIf InStr(StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase), ".jpg") <> 0 Then 
        'It contains an image! 
       Else 
        .Text = StrConv(Fields("customField" & z).Value, VbStrConv.ProperCase) 
       End If 
    etc etc..... 

我不是檢查是這樣的:

ElseIf InStr(StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase), ".jpg") <> 0 
OR InStr(StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase), ".png") <> 0 
OR InStr(StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase), ".gif") <> 0 
...etc... 

我如何使用我的定義validFileTypes做相同,但代碼少?

+0

見'Any'(自IEnumerable)或'Contains'(自IList?)的方法。 – 2012-11-30 21:09:23

回答

1

您需要可能添加一些代碼,但是這應該讓你正確的道路:

Dim isImage as Boolean = False 

For each validFileType in validFileTypes 
    If InStr(StrConv(Fields("customField" & z).Value, VbStrConv.Lowercase), validFileType) <> 0 Then 
     isImage = True 
    End If 
Next 
+0

我不能把它放在IF中。在知道之前,我必須先看看它是否有圖像擴展。這是在沒有多個If的情況下嘗試在IF內搜索的全部問題。 – StealthRT

+0

我會稍作修改以適應法案。 –

+0

感謝您的回覆,David。 – StealthRT