我有一个字符串和一个字符串数组。我想知道如果字符串包含数组中的值,是否可以使用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
答案 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)