string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法的区别

Posted net-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法的区别相关的知识,希望对你有一定的参考价值。

由于原来一直都没注意到这两个方法,一直使用string.IsNullOrEmpty,当看到string.IsNullOrWhiteSpace时,而且在微软人员开发的项目中经常使用时才注意到,查了一下MSDN,记一下免得以后忘记。

string.IsNullOrEmpty

都知道,这个功能是判断字符串是否为:null或者string.Empty。如果是如"\t"这样的字符就返回false了,为了达到判断过滤这些功能,就要使用Trim()和Length属性帮忙,判断是否长度为零,于是乎就产生了如下的方法。

string.IsNullOrWhiteSpace

这个是判断所有空白字符,功能相当于string.IsNullOrEmpty和str.Trim().Length总和,他将字符串给Char.IsWhiteSpace为ture的任何字符都将是正确的。根据MSDN的说明,这个方法会比调用上述两个方法的性能更高而且简洁,所以在判断这个功能时,推荐使用。

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { null, String.Empty, "ABCDE", 
                          new String(‘ ‘, 20), "  \t   ", 
                          new String(‘\u2000‘, 10) };
      foreach (string value in values)
         Console.WriteLine(String.IsNullOrWhiteSpace(value));
   }
}
// The example displays the following output:
//       True
//       True
//       False
//       True
//       True
//       True

以上就是代码执行效果,至于性能就听微软的吧,不过string.IsNullOrEmpty和string.IsNullOrWhiteSpace相比,肯定是前面一个性能更高【没有测试过,如果有哪位测试过的可以留言告诉我哦,谢谢!】,所以还是要选择性使用的。

以上是关于string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法的区别的主要内容,如果未能解决你的问题,请参考以下文章

String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()

使用 String.IsNullOrEmpty(string) 和 Nhibernate 创建动态 Linq 表达式

string.IsNullOrEmpty 和 string.IsNullOrWhiteSpace 为空字符串返回 false

String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别

为什么String.IsNullOrEmpty(str)而不是str.IsNullOrEmpty()?

C# 使用 String.IsNullOrEmpty 切换