我有一个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")
Run Code Online (Sandbox Code Playgroud)
我需要它,这样如果我对该列表进行了计数,它将返回4个项目,而不是7个.例如......
Dim ListCount As Integer = MyList.Count
MessageBox.Show(ListCount) ' Should show "4"
Run Code Online (Sandbox Code Playgroud)
如果有类似的东西会很好
MyList.RemoveEmpty
Run Code Online (Sandbox Code Playgroud)
无论如何......过去几个小时我一直在寻找Google的解决方案,但到目前为止还没有找到任何解决方案.所以...任何想法?
顺便说一句,我的目标是这个项目的.NET 2.0框架.
提前致谢!
Tim*_*ter 13
您可以使用 List.RemoveAll
MyList.RemoveAll(Function(str) String.IsNullOrWhiteSpace(str))
Run Code Online (Sandbox Code Playgroud)
如果您不使用至少.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
Run Code Online (Sandbox Code Playgroud)
请注意,Char.IsWhiteSpace自1.1以来就存在.