C# string.IsNullOrEmpty和IsNullOrWhiteSpace方法实现

 更新时间:2026年01月09日 10:48:52   作者:Xioa.  
本文主要介绍了C# string.IsNullOrEmpty和IsNullOrWhiteSpace方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

string.IsNullOrEmpty 和 IsNullOrWhiteSpace 这两个方法的区别和用法

IsNullOrEmpty

public static bool IsNullOrEmpty(string? value)

这个方法检查字符串是否为:

1. null
2. 空字符串 ("")

string str1 = null;
string str2 = "";
string str3 = " ";

Console.WriteLine(string.IsNullOrEmpty(str1));  // true
Console.WriteLine(string.IsNullOrEmpty(str2));  // true
Console.WriteLine(string.IsNullOrEmpty(str3));  // false

IsNullOrWhiteSpace

public static bool IsNullOrWhiteSpace(string? value)

这个方法检查字符串是否为:

1. null
2. 空字符串 ("")
3. 只包含空白字符的字符串(空格、制表符、换行符等)

string str1 = null;
string str2 = "";
string str3 = " ";
string str4 = "\t\n\r";
string str5 = "   ";  // 包含全角空格

Console.WriteLine(string.IsNullOrWhiteSpace(str1));  // true
Console.WriteLine(string.IsNullOrWhiteSpace(str2));  // true
Console.WriteLine(string.IsNullOrWhiteSpace(str3));  // true
Console.WriteLine(string.IsNullOrWhiteSpace(str4));  // true
Console.WriteLine(string.IsNullOrWhiteSpace(str5));  // true

主要区别

检查范围 :

- IsNullOrEmpty 只检查 null 和空字符串
- IsNullOrWhiteSpace 还会检查空白字符

性能 :

- IsNullOrEmpty 性能略好,因为不需要遍历字符串
- IsNullOrWhiteSpace 需要遍历字符串来检查空白字符

使用场景 :

- IsNullOrEmpty 适用于只需要检查字符串是否为空的场景
- IsNullOrWhiteSpace 适用于需要验证用户输入或数据清理的场景

使用建议

- 如果只需要检查字符串是否为 null 或空,使用 IsNullOrEmpty
- 如果需要验证用户输入,建议使用 IsNullOrWhiteSpace
- 在性能敏感的场景,优先考虑 IsNullOrEmpty
- 处理用户界面或数据验证时,优先考虑 IsNullOrWhiteSpace

注意事项

- 两个方法都是静态方法,需要通过 string. 来调用
- 从 C# 8.0 开始,这两个方法支持可空引用类型
- 这两个方法都是线程安全的
- 在处理大量数据时,性能差异可能会变得明显

到此这篇关于C# string.IsNullOrEmpty和IsNullOrWhiteSpace方法实现的文章就介绍到这了,更多相关C# string.IsNullOrEmpty 和 IsNullOrWhiteSpace 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中实现不同进程(EXE)间通信的主流方案

    C#中实现不同进程(EXE)间通信的主流方案

    本文介绍了C#中实现不同进程(EXE)间通信的7种主流技术,包括命名管道、内存映射文件、WCF服务、TCP套接字、消息队列、文件系统监控、WindowsAPI消息传递和互斥体同步,每种技术都有其适用场景和特点,需要的朋友可以参考下
    2026-01-01
  • 详解使用C#编写SqlHelper类

    详解使用C#编写SqlHelper类

    本篇文章主要介绍了使用C#编写SqlHelper类,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 详细介绍C#之文件校验工具的开发及问题

    详细介绍C#之文件校验工具的开发及问题

    目前校验文件使用最多的是MD值和SHA值,不外乎有些使用CRC,前段时间微软发布了VisualStudio正式版,win镜像,微软官方给出的校验方式都是校验文件的SHA值。下面详细介绍C#之文件校验工具的开发及问题,需要的朋友可以参考下
    2015-07-07
  • 详解C# 虚方法virtual

    详解C# 虚方法virtual

    这篇文章主要介绍了C# 虚方法virtual的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C#实现子窗体与父窗体通信方法实例总结

    C#实现子窗体与父窗体通信方法实例总结

    这篇文章主要介绍了C#实现子窗体与父窗体通信方法,实例总结了常用的四种窗体通信方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#中实现契约测试的方法

    C#中实现契约测试的方法

    这篇文章主要介绍了C#中实现契约测试,在本文中,我将揭开契约测试的神秘面纱,并向您展示如何在 C# 项目中实现它,需要的朋友可以参考下
    2023-09-09
  • C# Opacity 不透明度的具体使用

    C# Opacity 不透明度的具体使用

    本文主要介绍了C# Opacity 不透明度的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • 详解C#通过反射获取对象的几种方式比较

    详解C#通过反射获取对象的几种方式比较

    本文主要介绍了C#通过反射获取对象的几种方式比较,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C# 特殊的string类型详解

    C# 特殊的string类型详解

    本文主要介绍了C# 特殊的string类型。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#分布式事务的超时处理实例分析

    C#分布式事务的超时处理实例分析

    这篇文章主要介绍了C#分布式事务的超时处理,以实例形式较为详细的分析了C#分布式事务的超时处理相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论