string search = "Apple : 100";
string[] result = search .Split(':');
工作正常,输出如下:
result[0] ==> Apple
result[1] ==> 100
但是为此:
string search = "Apple";
string[] result = search .Split(':');
输出:
result[0] ==> Apple
为什么输出的是Apple?如果搜索string
中缺少定界符,我只想要空数组。
任何帮助将不胜感激。
答案 0 :(得分:7)
String.Split
的工作方式是返回一个包含分割段的数组。如果分隔符不存在,则只有一个段-整个字符串。从documentation(在返回值详细信息下):
如果该实例不包含分隔符中的任何字符串,则返回的数组由包含该实例的单个元素组成。
要做你想做的事
var result = search.Contains(':') ? search.Split(':') : new string[0];
答案 1 :(得分:0)
如果string不包含用作定界符的字符,则它将返回包含整个字符串的数组作为数组元素。
在您的情况下,字符串Apple
不包含定界符。这就是原因,数组包含整个字符串,即Apple作为第零个元素