32

有没有System.String.Split()回来null?(。网)

我知道我一直在编码,但是在阅读文档时我没有看到这样的声明。由于文档中没有这样的说法,所以想问问在社区的经验中,有没有人真正遇到过string.Split退货的情况null

4

3 回答 3

44

不,它不能返回 null。如果你看它的来源,它甚至用代码契约来保证它:

public String[] Split(params char[] separator) {
    Contract.Ensures(Contract.Result<String[]>() != null);

所有公共重载也做出同样的保证。

于 2012-06-13T19:34:25.863 回答
22

不,它不返回 null。如果分隔符不存在,则返回整个字符串

来自MSDN

如果此实例不包含分隔符中的任何字符串,则返回的数组由包含此实例的单个元素组成。如果 separator 参数为 null 或不包含字符,则假定空白字符为分隔符

于 2012-06-13T19:34:46.443 回答
2

它无法返回,请确保您的财产不是空的

if (property != null)
{
    string[] splitData = sampleObject.property.Split(new char[] { ',' },
    StringSplitOptions.RemoveEmptyEntries);
}
于 2012-06-13T20:03:59.790 回答