Split a comma separated string while removing whitespace and empty entries
arrays, c#, lambda, linq
Solution
Using Trim with `StringSplitOptions.RemoveEmptyEntries` doesn't work because `" "` isn't considered an empty entry. You need to do a normal split, then trim each item, then filter out the empty strings.
valueString.Split(',')
.Select(x => x.Trim())
.Where(x => !string.IsNullOrWhiteSpace(x))
.ToArray();
Problem
I wanted to convert a comma-separated string to a string-array and also remove whitespace and empty entries. For example, given the input: ``` string valueString = "sam, mike, , ,john , Tom and jerry , "; ``` The expected result would be the following values (trimmed, of course): ``` sam mike john Tom and Jerry ``` I have tried the following line of code which trims the values, but this fails to remove "empty" entries: ``` valueString.Split(',').Select(sValue => sValue.Trim()).ToArray(); ``` What would be the best way to go about trimming the input and cleaning up and empty entries that might result in the process?