私はこれまで数回これを経験しています。StringSplitOptions.RemoveEmptyEntriesが広告されたとおりに動作しない
StringSplitOptions.RemoveEmptyEntriesは、が空のエントリを削除することを示唆しています。
なぜこのテストは失敗しますか?
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"
});
結果: - StringSplitOptions.RemoveEmptyEntriesを防ぐ必要があります正確に何の代わりに "三" の、私たちは空の文字列を持っているので、
Values differ at index [2]
Expected string length 5 but was 0. Strings differ at index 0.
Expected: "Three"
But was: <string.Empty>
だから、失敗します。
これはOPの入力で2つの別々の項目として "Foo Bar"を誤って扱います。 – Giles