Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# String.Split()使用默认值(String[])作为分隔符,它是如何工作的?_C# - Fatal编程技术网

C# String.Split()使用默认值(String[])作为分隔符,它是如何工作的?

C# String.Split()使用默认值(String[])作为分隔符,它是如何工作的?,c#,C#,在一些C#代码中,我看到默认值(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”,

在一些C#代码中,我看到
默认值(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”。但我希望输出是数值数组字符串,即{“1”、“2”、“3”}


如何实现这一点?

使用
default(string[])
作为参数既不是特别有用,也不是特别可读,因为它可以(而且编译器会)简化为仅
null
,这样可读性更好

然后你会去:

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


如果要在多个分隔符上进行拆分,请尝试搜索该分隔符:

请改用另一个用字符数组替代拆分

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

使用正则表达式来拆分字符串。可能与@sahil重复:没有人说过现有代码必须有意义或有用。现有代码可能是垃圾。有道理。我不知道这个转换,所以我想确认一下。