2012-10-11 61 views
2

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

例如,让我们说这是我的列表...

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 

反正...我一直在寻找谷歌的在过去的几个小时里解决了这个问题,但迄今为止还没有出现任何问题。那么......有什么想法?

顺便说一句,我针对这个项目的.NET 2.0框架。

在此先感谢!

+0

您是否需要为以后保留“空”物品,还是要让它们永久移除? – Blumer

+0

永久移除会很好。 – NotQuiteThereYet

回答

12

您可以使用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。

+0

Gah殴打了一下,不得不查找VB.net :) –

+0

我认为你在代码字体中有List.RemoveAll获得奖励积分,但是。 – Blumer

+0

感谢您的快速回复,伙计们。但是,当我将该行粘贴到程序中时,出现以下错误...“IsNullOrWhiteSpace”不是String的成员。有任何想法吗? – NotQuiteThereYet