C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法及区别解析

 更新时间:2023年07月10日 08:46:19   作者:追逐时光者  
今天我们将探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace,本文中,我们将详细解释这两个方法的功能和使用场景,并帮助您更好地理解它们之间的区别,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧

前言

今天我们将探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace。这两个方法在处理字符串时非常常见,但是它们之间存在一些细微的区别。在本文中,我们将详细解释这两个方法的功能和使用场景,并帮助您更好地理解它们之间的区别。

IsNullOrEmpty

作用

该方法用于检查字符串是否为null或空字符串("")。如果字符串为null或长度为0,返回true;否则返回false。这个方法只关注字符串的长度,不考虑其中的空白字符。

源码实现

    /// <summary>
    /// 判断字符串是否为null或者为空字符串
    /// </summary>
    /// <param name="value">字符串</param>
    /// <returns></returns>
    public static bool IsNullOrEmpty([NotNullWhen(false)] string? value)
    {
        return value == null || value.Length == 0;
    }

示例

    public static void Main(string[] args)
    {
        string str1 = null;
        string str2 = "";
        string str3 = " ";
        string str4 = "追逐时光者";
        Console.WriteLine(IsStringNullOrEmpty(str1));// 输出:True
        Console.WriteLine(IsStringNullOrEmpty(str2));// 输出:True
        Console.WriteLine(IsStringNullOrEmpty(str3));// 输出:False
        Console.WriteLine(IsStringNullOrEmpty(str4));// 输出:False
    }
    public static bool IsStringNullOrEmpty(string str)
    {
        return string.IsNullOrEmpty(str);
    }

IsNullOrWhiteSpace

作用

该方法用于检查字符串是否为null、空字符串("")或只包含空白字符。如果字符串为null、长度为0或只包含空白字符(例如空格、制表符、换行符),返回true;否则返回false。与IsNullOrEmpty不同,IsNullOrWhiteSpace会考虑字符串中的空白字符。

源码实现

    /// <summary>
    /// 字符串是否为null、空字符串或只包含空白字符[(空格、制表符、换行符等空白字符)]
    /// </summary>
    /// <param name="value">字符串</param>
    /// <returns></returns>
    public static bool IsNullOrWhiteSpace([NotNullWhen(false)] string? value)
    {
        if (value == null) return true;
        for (int i = 0; i < value.Length; i++)
        {
            //判断每个字符是否为空白字符,如果存在任何一个非空白字符,即字符不是空格、制表符或换行符等空白字符,
            //那么条件 !char.IsWhiteSpace(value[i]) 就会为真,此时立即返回 false,表示该字符串不是空字符串。
            if (!char.IsWhiteSpace(value[i])) return false;
        }
        return true;
    }

示例

    public static void Main(string[] args)
    {
        string str1 = null;
        string str2 = "";
        string str3 = " ";
        string str4 = "追逐时光者";
        Console.WriteLine(IsStringNullOrWhiteSpace(str1));// 输出:True
        Console.WriteLine(IsStringNullOrWhiteSpace(str2));// 输出:True
        Console.WriteLine(IsStringNullOrWhiteSpace(str3));// 输出:True
        Console.WriteLine(IsStringNullOrWhiteSpace(str4));// 输出:False
    }
    public static bool IsStringNullOrWhiteSpace(string str)
    {
        return string.IsNullOrWhiteSpace(str);
    }

到此这篇关于C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法有什么区别?的文章就介绍到这了,更多相关C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 删除数组内的某个值、一组值方法详解

    C# 删除数组内的某个值、一组值方法详解

    在本篇文章里小编给大家整理的是关于C# 如何删除数组内的某个值、一组值的相关知识点,需要的朋友们学习下。
    2020-03-03
  • c#实现获取字符串阵列中元素最长或最短的长度

    c#实现获取字符串阵列中元素最长或最短的长度

    下面小编就为大家分享一篇c#实现获取字符串阵列中元素最长或最短的长度方法,具有很好的参考价值,希望对大家有所帮助
    2017-12-12
  • C# Aspose.Words 删除word中的图片操作

    C# Aspose.Words 删除word中的图片操作

    这篇文章主要介绍了C# Aspose.Words 删除word中的图片操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Unity Shader编辑器工具类ShaderUtil 常用函数和用法实例详解

    Unity Shader编辑器工具类ShaderUtil 常用函数和用法实例详解

    Unity的Shader编辑器工具类ShaderUtil提供了一系列函数,用于编译、导入和管理着色器,这篇文章主要介绍了Unity Shader编辑器工具类ShaderUtil 常用函数和用法,需要的朋友可以参考下
    2023-08-08
  • C#多线程开发之任务并行库详解

    C#多线程开发之任务并行库详解

    最近在学习C#的并行编程,在每本书上的看到的知识点都不全面,所以先参考多本书书籍的讲解,将并行编程,多线程编程的知识点整理一下,这篇文章主要给大家介绍了关于C#多线程开发之任务并行库的相关资料,需要的朋友可以参考下
    2021-09-09
  • C#调用带结构体指针Dll的方法

    C#调用带结构体指针Dll的方法

    在C#到底该如何安全的调用这样的DLL接口函数呢?本文将详细介绍如何调用各种参数的方法,对C#结构体指针DLL相关知识感兴趣的朋友一起看看吧
    2021-07-07
  • C# 可空类型的实现示例

    C# 可空类型的实现示例

    本文主要介绍了C#中的可空类型,包含单问号(?)和双问号(??),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • WPF微信聊天和通讯录按钮样式代码分享

    WPF微信聊天和通讯录按钮样式代码分享

    这篇文章主要为大家分享了WPF微信聊天和通讯录按钮样式代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • C#实现页面GZip或Deflate压缩的方法

    C#实现页面GZip或Deflate压缩的方法

    这篇文章主要介绍了C#实现页面GZip或Deflate压缩的方法,涉及C#通过GZipStream与DeflateStream实现页面压缩的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理

    基于mvc5+ef6+Bootstrap框架实现身份验证和权限管理

    最近刚做完一个项目,项目架构师使用mvc5+ef6+Bootstrap,用的是vs2015,数据库是sql server2014。下面小编把mvc5+ef6+Bootstrap项目心得之身份验证和权限管理模块的实现思路分享给大家,需要的朋友可以参考下
    2016-06-06

最新评论