StringSplitOptions.RemoveEmptyEntries并没有按照宣传的那样工作。
- 论坛
- StringSplitOptions.RemoveEmptyEntries并没有按照宣传的那样工作。
8 浏览
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" });
结果是:
在索引[2]处值不同 预期字符串长度为5,但实际长度为0。在索引0处字符串不同。 预期值:"Three" 实际值:""
所以它失败是因为我们得到了一个空字符串,而不是预期的"Three"
,这正是StringSplitOptions.RemoveEmptyEntries
应该避免的。