gpt4 book ai didi

c# - StringSplitOptions.RemoveEmptyEntries 不像宣传的那样工作

转载 作者:IT王子 更新时间:2023-10-29 04:17:44 26 4
gpt4 key购买 nike

我过去曾多次遇到过这种情况,最终决定找出原因。

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com