俺氏、本を読む

30歳になるまでに本を読んで勉強しようかと。主に啓発、お金についての本を読むつもり。一応プログラマーなのでその辺のことも。あと、せどり(転売)の仕入れ見込み商品をリサーチして仕入先と一緒に投稿します

【C#・VB(.NET)】Listから空文字要素を削除

空文字要素というよりは指定の文字列要素を削除する方法。

RemoveAllメソッドを使うのだけど、

引数にメソッドを指定する方法と、

ラムダ式を使用する方法があるので紹介。

 

ラムダ式を使用

ラムダ式を使用すれば1行で書ける。

ただし、ラムダ式はVS2008(C# 3.0やVB 9.0)以降のみ記述可能。

C#

    List lines = new List();
    lines.Add("");
    lines.Add("hoge");

    // 空要素削除
    lines.RemoveAll(s => s == "");

VB

    Dim lines As New List(Of String)()
    lines.Add("");
    lines.Add("hoge");

    // 空要素削除
    lines.RemoveAll(Function(s As String) s = "")

メソッドを使用

VS2008(C# 3.0やVB 9.0)未満だとこっちの方法。

bool値を返すメソッドを用意し、そのメソッドをRemoveAllの引数に指定する。

C#

    List lines = new List();
    lines.Add("");
    lines.Add("hoge");

    // 空要素削除
    lines.RemoveAll(checkLine);

static bool checkLine(string s) {
    return s == ""; // この条件の要素をすべて削除
}

VB

    Dim lines As New List(Of String)()
    lines.Add("");
    lines.Add("hoge");

    // 空要素削除
    lines.RemoveAll(AddressOf checkLine)

Shared Function checkLine(ByVal s As String) As Boolean
    Return s = "" ' この条件の要素をすべて削除
End Function