String.SplitメソッドでStringSplitOptions.TrimEntriesを指定すると、分割によって各要素の前後に空白が生じる場合に、それを削除することができます。 これは、Splitメソッドで分割した後に個々の要素に対してString.Trimメソッドを呼び出し、前後の空白を削除するのと同じ動作となります。
StringSplitOptions.TrimEntriesは.NET 5以降で使用できます。
StringSplitOptions.TrimEntriesを指定して各要素の前後の空白を削除して文字列を分割する .NET 5
Imports System
Class Sample
Shared Sub Main()
Dim s As String = " field1, field2 ,field3 " ' カンマ区切りの文字列(各カラムの前後に余白を含む)
Dim fields As String()
' 文字','を区切りとして分割し、各要素の前後の空白を除去する
Console.WriteLine($"[{NameOf(StringSplitOptions.TrimEntries)}]")
fields = s.Split(","c, StringSplitOptions.TrimEntries)
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)
For Each field As String In fields
Console.WriteLine("<{0}>", field)
Next
End Sub
End Class
実行結果
[TrimEntries] <field1> <field2> <field3> [None] < field1> < field2 > <field3 >
なお、このオプションではString.Trimメソッドと同様にChar.IsWhiteSpaceがtrueとなる空白文字が削除されます。 空白文字には改行文字等も含まれます。