作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我过去曾多次遇到过这种情况,最终决定找出原因。
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>
所以它失败了,因为我们有一个空字符串而不是 "Three"
- 这正是 StringSplitOptions.RemoveEmptyEntries
应该阻止的。
最佳答案
很可能是因为您在拆分后更改了字符串。您在拆分后修剪值,RemoveEmptyEntries
不会将字符串 ""
视为空。
以下将实现您想要的,基本上创建您自己的 strip 空元素:
var tagsSplit = tags.Split(',').
Select(tag => tag.Trim()).
Where( tag => !string.IsNullOrEmpty(tag));
关于c# - StringSplitOptions.RemoveEmptyEntries 不像宣传的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10682301/
Possible duplicates Is there a reason to not use Boost? What are the advantages of using the C++ BOO
任何人都可以推荐任何关于 jQuery 的特别引人注目的宣传(论文,甚至更好,视频),适合对技术知之甚少的经理吗? 我的经理似乎非常不愿意考虑让我们使用它,似乎认为这是本月的另一种技术风格/昙花一现。
URL 框架规范:https://github.com/google/eddystone/tree/master/eddystone-url 我在宣传 Eddystone URL 框架时遇到问题。我正
我是一名优秀的程序员,十分优秀!