我正在开发一个通过tcp接收字符串的应用程序。然后我使用deliminator解析字符串。
到目前为止,一切正常。但是,我想在解析结果上使用字符串比较执行简单的if语句。
每个结果都有两个参数,imagePath和imageID。如果imageID不是NULL,我想执行一些操作。但是,即使我收到值为NULL的imageID,也会触发if语句中的操作。
这是我收到并解析的字符串示例:
V:/Movies/Pic010.jpg=59289|V:/Movies/Pic011.jpg=59318|V:/Movies/Pic012.jpg=59278|V:/Movies/Pic04.jpg=59256|V:/Movies/Pic05.jpg=59351|V:/Movies/Pic07.jpg=59267|V:/Movies/Pic08.jpg=59307|V:/Movies/Pic09.jpg=59340|V:/Movies/longWaydown.png=59374|V:/Movies/mali.png=59329|V:/Pic010.jpg=NULL|V:/Pic011.jpg=NULL|V:/Pic03.jpg=NULL|V:/Pic04.jpg=NULL
这是带有导致问题的if语句的解析代码:
Dim imagesStatus As New Hashtable
Dim tempImagesArray As String()
tempImagesArray = imagesStatusString.Split("|")
For Each img In tempImagesArray
Dim imagePath As String = img.Remove(img.IndexOf("="))
Dim imageID As String = img.Substring(img.IndexOf("=") + 1)
imagesStatus(imagePath) = imageID
Next
Try
Dim tempMovieQue As New List(Of String)
For Each movieAsset In currentMovieAssets.Values
Dim imageID As String = imagesStatus(graphicAssetsBasePath & "/" & movieAsset("poster").ToString)
imageID = imageID.Trim()
If Not imageID = "NULL" Then // THIS DOES NOT WORK
Console.WriteLine(imageID)
tempMovieQue.Add("{{imageID} {" & imageID & "} {genre} {" & movieAsset("genre") & "} {special} {" & movieAsset("special") & "} {title} {" & movieAsset("asset") & "}}")
End If
Next
当我运行调试并检查imageID值时,它会收到值" NULL"因此我无法理解为什么我的if语句失败。
任何建议都将不胜感激! TIA
答案 0 :(得分:0)
试
if not imageID is DBNull.Value Then
.Net对于空值很挑剔,他们希望你得到Is比较而不是=