カンマで区切られた文字列を文字列配列に変換し、空白と空のエントリを削除したかったのです。たとえば、次の入力があるとします。
string valueString = "sam, mike, , ,john , Tom and jerry , ";
期待される結果は次の値になります(もちろん、トリミングされています)。
sam
mike
john
Tom and Jerry
値をトリミングする次のコード行を試しましたが、これは「空の」エントリを削除できません。
valueString.Split(',').Select(sValue => sValue.Trim()).ToArray();
プロセスを引き起こす可能性のある入力をトリミングし、エントリを空にしてエントリを空にするための最良の方法は何ですか?
StringSplitOptions.RemoveEmptyEntries
は空のエントリとは見なされないため、" "
でトリムを使用しても機能しません。通常の分割を行ってから、各アイテムをトリミングし、空の文字列をフィルターで取り除く必要があります。
valueString.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray();
Anthonyからの回答に基づいて、これはそれをコンマ区切りの文字列にも変換します。
valueString = string.Join(",", valueString.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray())