String.Split()默认(string [])作为分隔符,它是如何工作的?

时间:2016-11-09 11:53:51

标签: c#

在一些C#代码中,我看到default(string[])null,但行为看起来像是基于空格拆分:

string[] x = "1 2   3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
string[] y = "1,2,  3".Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);

此处,x变为string[3] = {"1","2","3"}y变为string[2] = {"1,2,","3"}

我的输入字符串可以用空格或逗号分隔,即" 1 2 3"或" 1,2,3和#34;。但我希望输出为数字数组字符串,即{" 1"," 2"," 3"}

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

使用default(string[])作为参数并不是特别有用也不可读,因为它可以(并且将由编译器)简化为null,这样更易​​读。

然后你会去read the docs

  

如果separator参数为null或不包含字符,则假定空格字符为分隔符。空格字符由Unicode标准定义,如果将它们传递给Char.IsWhiteSpace方法,则返回true。

如果您想拆分多个分隔符,请尝试搜索:splitting a string based on multiple char delimiters

答案 1 :(得分:0)

使用另一个Split with char数组覆盖

Split(new []{',',' '}, StringSplitOptions.RemoveEmptyEntries);