c#仅在找到分隔符时拆分字符串

sto*_*tom 1 .net c# string split

string search = "Apple : 100";

string[] result = search .Split(':');
Run Code Online (Sandbox Code Playgroud)

适用于以下输出:

result[0] ==> Apple
result[1] ==> 100
Run Code Online (Sandbox Code Playgroud)

但为此:

string search  = "Apple";    
string[] result = search .Split(':');
Run Code Online (Sandbox Code Playgroud)

输出:

result[0] ==> Apple
Run Code Online (Sandbox Code Playgroud)

为什么输出是Apple?如果搜索中缺少分隔符,我只想要空数组string.

任何帮助,将不胜感激.

Gil*_*een 7

方法String.Split是返回一个带有拆分段的数组.如果分隔符不存在则只有一个段 - 整个字符串.从文档(在返回值详细信息下):

如果此实例不包含分隔符中的任何字符串,则返回的数组由包含此实例的单个元素组成.

要做你想做的事你可以做:

var result = search.Contains(':') ? search.Split(':') : new string[0];
Run Code Online (Sandbox Code Playgroud)

  • @stom - 我知道它的行为是这样的 :) 所以寻找证据哈哈 (2认同)