string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

一直都是用string.IsNullOrEmpty  没有注意到string.IsNullOrWhiteSpace

突然就想看一下它们两个的区别      如下:

string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

string.IsNullOrEmpty指定的字符串是 null 还是 Empty字符串。

string.IsNullOrWhiteSpace指定的字符串是 null、空还是仅由空白字符组成。

string.IsNullOrWhiteSpace是类似于下面的代码,只是它提供优异的性能的便捷方法:

return String.IsNullOrEmpty(value) || value.Trim().Length == 0;

那IsNullOrEmpty与IsNullOrWhiteSpace性能谁比较高呢?

在string都是空字符串的情况下:

string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

IsNullOrWhiteSpace要比IsNullOrEmpty快大约 1~5倍左右

如果都是为null呢,谁比较快呢?

string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

IsNullOrWhiteSpace稳定在3,而IsNullOrEmpty在1~12之间来回跳跃

如果有值呢,谁比较快?

string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

IsNullOrWhiteSpace基本稳定在3左右,而IsNullOrEmpty跳动幅度比较大一些在3~50之间

测试代码如下:

string.IsNullOrEmpty和string.IsNullOrWhiteSpace的区别和性能比较

如此看来IsNullOrWhiteSpace性能是要比IsNullOrEmpty高的多得多的。

但如果处理上万条,几十万条数据却是IsNullOrEmpty性能要高的。但是IsNullOrWhiteSpace相对比较稳定,IsNullOrEmpty跳动幅度比较大一些