views:

42

answers:

3

I have a array of strings and I am looping through them, but the string might be empty so I am trying this:

For Each Component As String In Components
    If Component IsNot String.Empty Then
        'Work your magic
    End If
Next

But if Component is an empty string the logic still fires. I've also tried

If Component <> "" Then 

End If

With the same results. So what am I missing?

+4  A: 
  1. Make sure that your List is of type string
  2. Use the String.IsNullOrEmpty method.

    Sub Main
        Dim foo As String
        foo = "Non-Empty string"
        If Not String.IsNullOrEmpty(foo) Then
            Console.WriteLine("Foo is not empty.")
        End If
    End Sub
    
Daniel May
Thanks a whole bunch.
Jim
A: 

Do your string have default values and are they actually ""? What if you used:

If Not Component Is Nothing Then

End If
Matt
+1  A: 

One thing that has gotten me before is spaces. You can't see it when you view the variable in the watch window, but it makes the string not empty or null.

Wade73
That wasn't it, but +1 for the tip.
Jim