[C#] String.Split メソッドで空白データを除外する
String.Split メソッドに StringSplitOptions 引数を指定すると、空の配列要素が除外される。しかし、実際には空文字で構成されたデータを除外することができない。
ここでいう空の配列要素とは、あくまで区切り文字が連続で続いていたケースのみを指すのだ。
完全に除去したいのなら、ラムダを使用すると一行で消せる。
var ret1 = mail.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); // [1] test1@exsample.com // [2] // [3] test2@exsample.com var ret2 = mail.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => !string.IsNullOrWhiteSpace(x)); // [1] test1@exsample.com // [2] test2@exsample.com // char で区切り文字を指定すれば、そもそもオプションはいらない。 var ret3 = mail.Split(new char[] { ';' }).Select(x => x.Trim()).Where(x => !string.IsNullOrWhiteSpace(x)); // [1] test1@exsample.com // [2] test2@exsample.com
String.Split メソッド
http://msdn.microsoft.com/ja-jp/library/System.String.Split(v=vs.110).aspx