2013-12-18 5 views
15

コンマ区切りの文字列を文字列配列に変換し、空白と空のエントリも削除したいと考えました。例えば、入力が与えられる:空白と空のエントリを削除しながらコンマで区切った文字列を分割する

string valueString = "sam, mike, , ,john , Tom and jerry , "; 

期待される結果は以下の値(もちろん、トリミング)であろう:

sam 
mike 
john 
Tom and Jerry 

Iの値をトリミングコードの次の行を試みたが、これは「空」のエントリを削除するために失敗します。

valueString.Split(',').Select(sValue => sValue.Trim()).ToArray(); 

入力をトリミングし、クリーンアップし、プロセスにつながる可能性がある空のエントリについて移動するための最良の方法だろうか?

+0

あなたはそれで何の問題を持っていますか?間違いましたか? – MikeSmithDev

答えて

32

StringSplitOptions.RemoveEmptyEntriesでトリムを使用すると、" "は空のエントリとみなされないため、機能しません。通常の分割を行い、次に各項目をトリムし、空の文字列をフィルタリングする必要があります。

valueString.Split(',') 
    .Select(x => x.Trim()) 
    .Where(x => !string.IsNullOrWhiteSpace(x)) 
    .ToArray(); 
+0

'new {'、'}'これは間違っています。 – MikeSmithDev

+0

これは 'new {] {'、'}' –

0

アンソニーからの回答の構築、これは同様に、カンマ区切りの文字列に戻って、それを変換します:

valueString = string.Join(",", valueString.Split(',') 
    .Select(x => x.Trim()) 
    .Where(x => !string.IsNullOrWhiteSpace(x)) 
    .ToArray()) 
関連する問題