【C#・VB(.NET)】Listから空文字要素を削除
空文字要素というよりは指定の文字列要素を削除する方法。
RemoveAllメソッドを使うのだけど、
引数にメソッドを指定する方法と、
ラムダ式を使用する方法があるので紹介。
ラムダ式を使用
ラムダ式を使用すれば1行で書ける。
ただし、ラムダ式はVS2008(C# 3.0やVB 9.0)以降のみ記述可能。
C#
Listlines = 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#
Listlines = 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