I've come across this several times in the past and have finally decided to find out why.

`StringSplitOptions.RemoveEmptyEntries` would suggest that it *removes empty entries*.

So why does this test fail?

```
var tags = "One, Two, , Three,   Foo Bar, , Day    , ";

var tagsSplit = tags.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(s => s.Trim());

tagsSplit.ShouldEqual(new string[] {
    "One",
    "Two",
    "Three",
    "Foo Bar",
    "Day"
});

```

The result:

```
  Values differ at index [2]
  Expected string length 5 but was 0. Strings differ at index 0.
  Expected: "Three"
  But was:  <string.Empty>

```

So it fails because instead of `"Three"`, we have an empty string – exactly what `StringSplitOptions.RemoveEmptyEntries` should prevent.