使用If语句验证字符串值是否在字符串数组中

时间:2019-08-28 10:38:52

标签: .net vb.net if-statement

我有一个字符串和一个字符串数组。我想知道如果字符串包含数组中的值,是否可以使用If语句返回布尔值。

以下代码无法正常工作。据我所知,Contains只能接受一个值。是否有更好的方法可以执行此操作而不必使用循环?

Dim FilePath As String = "C:\Users\Downloads\Test.jpg"
Dim GetExtension As String = FilePath.Substring(FilePath.Length - 3)
Dim FileExtensionArray() As String = {".png", ".jpg", ".tif"}

If GetExtension.Contains(FileExtension) = True Then
   ' Code
Else
   ' Code
End If

2 个答案:

答案 0 :(得分:2)

关于代码的几点注意事项:

Dim GetExtension As String = FilePath.Substring(FilePath.Length - 3)
Dim FileExtensionArray() As String = {".png", ".jpg", ".tif"}

GetExtension现在包含jpg,但是您的数组是.jpg。有一些文件扩展名的内置帮助:

IO.Path.GetExtension(FilePath)

最后,您的If .... Then测试是错误的方法。经过几次简单的调整,我将使用以下方法:

    Dim FilePath As String = "C:\Users\Downloads\Test.jpg"
    Dim FilePathExtension As String = IO.Path.GetExtension(FilePath)
    Dim FileExtensionArray As String() = {".png", ".jpg", ".tif"}

    If FileExtensionArray.Contains(FilePathExtension) Then
        'yes
    Else
        'no
    End If

答案 1 :(得分:0)

也许您可以使用Join函数将FileExtensionArray转换为字符串:

 GetExtensionsJoin= String.Join( "-", FileExtensionArray)

在那之后,您可以使用方法“包含”来检查字符串是否包含扩展名。

 GetExtensionsJoin.contains(GetExtension)