6

ジェネリックリストを含む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")

そのリストでカウントした場合、7つではなく4つのアイテムが返されるようにするために必要です。たとえば...

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

のようなものがあればいいのに...

    MyList.RemoveEmpty

とにかく...私は過去数時間これに対する解決策をグーグルで探していましたが、今のところ何も見つけることができませんでした。だから...何かアイデアはありますか?

ところで、私はこのプロジェクトの.NET2.0フレームワークをターゲットにしています。

前もって感謝します!

4

1 に答える 1

19

使用できますList.RemoveAll

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

少なくとも.NET4を使用しない場合、を使用することはできません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.IsWhiteSpace1.1以降にあることに注意してください。

于 2012-10-11T22:35:22.670 に答える