String.SplitメソッドでStringSplitOptions.RemoveEmptyEntriesを指定すると、分割によって空の要素(長さ0の部分)が生じた場合に、それを除外することができます。
StringSplitOptions.RemoveEmptyEntriesを指定して空となる要素を除外して文字列を分割する
Imports System
Class Sample
Shared Sub Main()
Dim s As String = "field1,,field3,field4," ' カンマ区切りの文字列(空のカラムを含む)
Dim fields As String()
' 文字','を区切りとして分割し、空の要素を除外する
Console.WriteLine($"[{NameOf(StringSplitOptions.RemoveEmptyEntries)}]")
fields = s.Split(","c, StringSplitOptions.RemoveEmptyEntries)
Console.WriteLine($"Length = {fields.Length}")
For Each field As String In fields
Console.WriteLine("<{0}>", field)
Next
Console.WriteLine()
' 文字列","を区切りとして分割する (空の要素はそのままにする)
Console.WriteLine($"[{NameOf(StringSplitOptions.None)}]")
fields = s.Split(","c, StringSplitOptions.None)
Console.WriteLine($"Length = {fields.Length}")
For Each field As String In fields
Console.WriteLine("<{0}>", field)
Next
End Sub
End Class
実行結果
[RemoveEmptyEntries] Length = 3 <field1> <field3> <field4> [None] Length = 5 <field1> <> <field3> <field4> <>