无法比较从tcp VB.Net接收的字符串

无法比较从tcp VB.Net接收的字符串,vb.net,if-statement,tcp,string-comparison,Vb.net,If Statement,Tcp,String Comparison,我正在开发一个通过tcp接收字符串的应用程序。然后,我使用一个除数器解析字符串 到目前为止一切正常。然而,我想做一个简单的if语句,对解析的结果进行字符串比较 每个结果都有两个参数,imagePath和imageID。如果imageID不是NULL,我想执行一些操作。但是,即使当我收到值为NULL的imageID时,if语句中的操作也会被触发 这是我接收和解析的字符串的一个示例: V:/Movies/Pic010.jpg=59289|V:/Movies/Pic011.jpg=59318|V:/M

我正在开发一个通过tcp接收字符串的应用程序。然后,我使用一个除数器解析字符串

到目前为止一切正常。然而,我想做一个简单的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

试试看

if not imageID is DBNull.Value Then
.Net对空值很挑剔,他们希望您进行is比较,而不是=