C# string.IsNullOrEmpty和IsNullOrWhiteSpace方法實(shí)現(xiàn)
string.IsNullOrEmpty 和 IsNullOrWhiteSpace 這兩個(gè)方法的區(qū)別和用法
IsNullOrEmpty
public static bool IsNullOrEmpty(string? value)
這個(gè)方法檢查字符串是否為:
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)
這個(gè)方法檢查字符串是否為:
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
主要區(qū)別
檢查范圍 :
- IsNullOrEmpty 只檢查 null 和空字符串
- IsNullOrWhiteSpace 還會(huì)檢查空白字符
性能 :
- IsNullOrEmpty 性能略好,因?yàn)椴恍枰闅v字符串
- IsNullOrWhiteSpace 需要遍歷字符串來(lái)檢查空白字符
使用場(chǎng)景 :
- IsNullOrEmpty 適用于只需要檢查字符串是否為空的場(chǎng)景
- IsNullOrWhiteSpace 適用于需要驗(yàn)證用戶(hù)輸入或數(shù)據(jù)清理的場(chǎng)景
使用建議
- 如果只需要檢查字符串是否為 null 或空,使用 IsNullOrEmpty
- 如果需要驗(yàn)證用戶(hù)輸入,建議使用 IsNullOrWhiteSpace
- 在性能敏感的場(chǎng)景,優(yōu)先考慮 IsNullOrEmpty
- 處理用戶(hù)界面或數(shù)據(jù)驗(yàn)證時(shí),優(yōu)先考慮 IsNullOrWhiteSpace
注意事項(xiàng)
- 兩個(gè)方法都是靜態(tài)方法,需要通過(guò) string. 來(lái)調(diào)用
- 從 C# 8.0 開(kāi)始,這兩個(gè)方法支持可空引用類(lèi)型
- 這兩個(gè)方法都是線(xiàn)程安全的
- 在處理大量數(shù)據(jù)時(shí),性能差異可能會(huì)變得明顯
到此這篇關(guān)于C# string.IsNullOrEmpty和IsNullOrWhiteSpace方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# string.IsNullOrEmpty 和 IsNullOrWhiteSpace 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中實(shí)現(xiàn)不同進(jìn)程(EXE)間通信的主流方案
本文介紹了C#中實(shí)現(xiàn)不同進(jìn)程(EXE)間通信的7種主流技術(shù),包括命名管道、內(nèi)存映射文件、WCF服務(wù)、TCP套接字、消息隊(duì)列、文件系統(tǒng)監(jiān)控、WindowsAPI消息傳遞和互斥體同步,每種技術(shù)都有其適用場(chǎng)景和特點(diǎn),需要的朋友可以參考下2026-01-01
詳細(xì)介紹C#之文件校驗(yàn)工具的開(kāi)發(fā)及問(wèn)題
目前校驗(yàn)文件使用最多的是MD值和SHA值,不外乎有些使用CRC,前段時(shí)間微軟發(fā)布了VisualStudio正式版,win鏡像,微軟官方給出的校驗(yàn)方式都是校驗(yàn)文件的SHA值。下面詳細(xì)介紹C#之文件校驗(yàn)工具的開(kāi)發(fā)及問(wèn)題,需要的朋友可以參考下2015-07-07
C#實(shí)現(xiàn)子窗體與父窗體通信方法實(shí)例總結(jié)
這篇文章主要介紹了C#實(shí)現(xiàn)子窗體與父窗體通信方法,實(shí)例總結(jié)了常用的四種窗體通信方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
C#分布式事務(wù)的超時(shí)處理實(shí)例分析
這篇文章主要介紹了C#分布式事務(wù)的超時(shí)處理,以實(shí)例形式較為詳細(xì)的分析了C#分布式事務(wù)的超時(shí)處理相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

