主页 > 软件教程

C# 判断字符串为空的3种方法及效率

软件教程 2024-01-09

在程序开发过程中,少不了要处理字符串,并且常常要判断字符串是否为空,通常有哪些判断方法,以及不同方法的效率又怎么样?

在 C# 中,通常有三种判断字符串是否为空的方法,下面分别探讨。

1、str.Length == 0
使用 str.Length == 0,在三种方法中效率是最高的,但容易产生异常。当字符串为空的时候就会产生异常,如

string str; 或者 string str = null;

if(str.Length == 0) //产生异常

此时,就会产生对象不能为空的异常。

如果事先初始化 str,如:

string str = "C# 判断字符串为空";

if(str.Length == 0) //不产生异常

此时,则不会产生异常。因此,如果事先可以断定字符串在任何情况下都不为空,可以用此方法,从而提高效率;反之,不建议使用。

2、str == string.Empty 或 str == ""
这两种方法效率比 str.Length == 0 稍低一点,但字符为空时不会产生异常。所以,在事先不初始化变量,或不能断定变量在程序运行过程中一定不为空,可以使用此方法。

可能细心的你会问,str == string.Empty 和 str == "",哪个效率会更高一点?记得在《C# 多个字符串连接的效率》一文中具体探讨过,有兴趣可以看一看,不过在此可以先告诉你:str == string.Empty 略高一点。

3、str == string.IsNullOrEmpty
Null 通常用来判断对象是否为空,所以这个方法既可以判断字符串(str)这个对象是否存在,也可以判断字符串为空(empty 或 "")。它与 str == string.Empty 比较,效率高低如何呢?举例如下:

1)字符串为空时

string str = null;
if (str == string.Empty)
{
}

if (string.IsNullOrEmpty(str))
{
}

2)字符串不为空时

string str = "C# 判断字符串为空";
if (str == string.Empty)
{
}

if (string.IsNullOrEmpty(str))
{
}

通过执行比较,两种情况,string.IsNullOrEmpty(str) 都比 str == string.Empty 稍快。

当然,这种字符串为空的判断方法,在平常的编程过程中,效率差别是非常小,如果不是十分复杂的情况下,可以忽略。但尽量使用效率高的方法。


标签: C#判断字符串为空

电脑软硬件教程网 Copyright © 2016-2030 www.computer26.com. Some Rights Reserved.