我在過去碰到過好幾次,最後決定找出原因。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"
});
結果:
Values differ at index [2]
Expected string length 5 but was 0. Strings differ at index 0.
Expected: "Three"
But was: <string.Empty>
所以它失敗,因爲不是 「三」,我們有一個空字符串 - StringSplitOptions.RemoveEmptyEntries應該避免什麼。
這將錯誤地將OP輸入中的「Foo Bar」視爲兩個單獨的項目。 – Giles