VB - 如何从通用列表中删除“空”项?

时间:2012-10-11 22:27:11

标签: vb.net

我有一个包含通用列表的VB.NET(2010)项目,我正试图找出如何从列表中删除任何“空”项。当我说“空”时,我指的是任何不包含任何实际字符的项目(但它可能包含任何数量的空格,或根本没有空格)。

例如,假设这是我的清单......

    Dim MyList As New List(Of String)

    MyList.Add("a")
    MyList.Add("")
    MyList.Add("b")
    MyList.Add(" ")
    MyList.Add("c")
    MyList.Add("      ")
    MyList.Add("d")

我需要它,这样如果我对该列表进行了计数,它将返回4个项目,而不是7个。例如......

    Dim ListCount As Integer = MyList.Count
    MessageBox.Show(ListCount) ' Should show "4"

如果有像......那样的话会很好。

    MyList.RemoveEmpty

无论如何......过去几个小时我一直在寻找Google的解决方案,但到目前为止还没有找到任何解决方案。所以...任何想法?

BTW,我的目标是该项目的.NET 2.0框架。

提前致谢!

1 个答案:

答案 0 :(得分:13)

您可以使用List.RemoveAll

MyList.RemoveAll(Function(str) String.IsNullOrWhiteSpace(str))

如果您至少不使用.NET 4,则无法使用String.IsNullOrWhiteSpace。然后你可以自己实现这个方法:

Public Shared Function IsNullOrWhiteSpace(value As String) As Boolean
    If value Is Nothing Then
        Return True
    End If
    For i As Integer = 0 To value.Length - 1
        If Not Char.IsWhiteSpace(value(i)) Then
            Return False
        End If
    Next
    Return True
End Function

请注意,Char.IsWhiteSpace自1.1以来就存在。