Pages

2014/12/05

[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
Related Posts Plugin for WordPress, Blogger...