在C#中检查空字符串的最可行方法

All*_*hua 54 c# string comparison

在考虑代码性能时,在C#中检查空字符串的最佳方法是什么(我不是要求初始化!)(参见下面的代码)

string a;

// some code here.......


if(a == string.Empty)
Run Code Online (Sandbox Code Playgroud)

要么

if(string.IsNullOrEmpty(a))
Run Code Online (Sandbox Code Playgroud)

要么

if(a == "")
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.:)

Yog*_*esh 90

不要将字符串与字符串进行比较String.Empty""检查空字符串.

相反,通过使用比较 String.Length == 0

string.Empty和之间的差异""非常小.String.Empty""在内存中创建新对象以进行检查时不会创建任何对象.因此string.empty在内存管理方面更好.但是与之比较string.Length == 0会更快,并且是检查空字符串的更好方法.

  • @Mana包含空格的字符串不为空. (44认同)
  • http://stackoverflow.com/a/151481/4767498字符串被实现,所以string.Empty和""现在是相等的. (5认同)
  • 如果字符串为空,string.Length == 0 会给出错误...因此 string.IsNullOrEmpty() 是更好的方法 (5认同)
  • 我不建议这种方法.如果字符串包含空格,那么字符串的长度将大于0,然后测试将失败. (2认同)

Gre*_*zik 34

我认为最好的方法是if(string.IsNullOrEmpty(a))因为它比其他方法更快更安全.

  • 但是如果字符串具有空值,则我认为长度检查将失败 (4认同)
  • 不,它比检查字符串的长度慢,因为它必须测试两个而不是1. (3认同)
  • 是的,但是OP询问了检查空字符串的最快方法.对null进行额外检查不是最快的方法(可能他知道字符串将始终为非null). (2认同)
  • “如果字符串具有空值,我认为长度检查将失败”——它会抛出一个异常。(上面的其他评论是错误的,因为 OP 的示例使用了一个未初始化的变量,该变量将为空)。 (2认同)

Roy*_*mir 18

string.IsNullOrEmpty(a)
Run Code Online (Sandbox Code Playgroud)

它会检查NULL || EMPTY

这是实施:

public static bool IsNullOrEmpty(string value)
{
    if (value != null)
    {
        return (value.Length == 0);
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)