如果不是空字符串则忽略String.Empty - VB.NET

5

我有一个字符串数组,并且正在循环遍历它们,但是这些字符串可能为空,所以我正在尝试以下操作:

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

但是如果 Component 是一个空字符串,逻辑仍然会触发。我也尝试过。
If Component <> "" Then 

End If

同样的结果,那我错在哪里了?

只是为了完整性而补充:您认为组件为空字符串的假设一定是错误的。它可能是一个非空字符串,也可能是Nothing。 - jeroenh
3个回答

24
  1. 确保你的列表是string类型
  2. 使用 String.IsNullOrEmpty 方法。

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

1

有时候让我困惑的问题是空格。当你在观察窗口中查看变量时,看不到空格,但它会使字符串不为空或 null。


那不是我要的,但是谢谢你的提示,加1分。 - personaelit

0

你的字符串是否有默认值,而且它们实际上是 "" 吗?如果你使用以下代码会怎样:

If Not Component Is Nothing Then

End If

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接