最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文解析C#中的StringSplitOptions枚舉

 更新時(shí)間:2025年09月30日 10:49:00   作者:yi碗湯園  
StringSplitOptions是C#中的一個(gè)枚舉類(lèi)型,用于控制string.Split()方法分割字符串時(shí)的行為,核心作用是處理分割后產(chǎn)生的“空字符串”或“空白字符串”,讓開(kāi)發(fā)者能精確控制分割結(jié)果的格式,本文給大家介紹C#中的StringSplitOptions枚舉,感興趣的朋友跟隨小編一起看看吧

本篇文章來(lái)分享一下C#的StringSplitOptions枚舉,StringSplitOptions是C#中的一個(gè)枚舉類(lèi)型,用于控制string.Split()方法分割字符串時(shí)的行為,核心作用是處理分割后產(chǎn)生的“空字符串”或“空白字符串”,讓開(kāi)發(fā)者能精確控制分割結(jié)果的格式。

C#的StringSplitOptions枚舉

1.StringSplitOptions枚舉的常用成員

枚舉值

含義描述

適用場(chǎng)景

None

保留所有分割結(jié)果,包括空字符串("")和空白字符串(" ")。

需要完整保留分割節(jié)點(diǎn)(如解析固定格式協(xié)議數(shù)據(jù),空值有特殊含義)。

RemoveEmptyEntries

移除純空字符串(""),但保留含空白的字符串(如 " ")。

分割后需忽略空值,但保留空白內(nèi)容(如 CSV 中空白字段有意義)。

TrimEntries

先去除每個(gè)分割結(jié)果的前后空白,再移除空字符串(.NET 5+ 新增)。

處理用戶(hù)輸入或格式不規(guī)范的文本(自動(dòng)清理空格)。

2.關(guān)鍵區(qū)別:用示例對(duì)比三種行為

      假設(shè)存在一個(gè)待分割的字符串:"apple,, banana, , orange"(包含連續(xù)逗號(hào)、帶空格的內(nèi)容、純空白字符串),用','作為分隔符,三種選項(xiàng)的結(jié)果差異如下:

2.1.StringSplitOptions.None(默認(rèn))

      保留所有分割結(jié)果,包括空字符串和空白字符串:

string input = "apple,, banana,  , orange";
string[] result = input.Split(',', StringSplitOptions.None);
//結(jié)果(5個(gè)元素):
//["apple", "", " banana", "  ", " orange"]

2.2.StringSplitOptions.RemoveEmptyEntries

      移除純空字符串(""),但保留帶空白的字符串(" banana"、" "):

string[] result = input.Split(',', StringSplitOptions.RemoveEmptyEntries);
//結(jié)果(4個(gè)元素):
//["apple", " banana", "  ", " orange"]

2.3.StringSplitOptions.TrimEntries(.NET 5+)

      先修剪每個(gè)結(jié)果的前后空白,再移除空字符串:

string[] result = input.Split(',', StringSplitOptions.TrimEntries);
//步驟1:修剪每個(gè)分割結(jié)果的空白
//["apple", "", "banana", "", "orange"]
//步驟2:移除空字符串
//最終結(jié)果(3個(gè)元素):["apple", "banana", "orange"]

3.常見(jiàn)使用場(chǎng)景

3.1.處理用戶(hù)輸入的標(biāo)簽(可能有連續(xù)逗號(hào)或空格)StringSplitOptions.TrimEntries

      用戶(hù)輸入:"C#, Java,, Python ",希望得到干凈的字符串:

string input = "C#,  Java,, Python  ";
//先按逗號(hào)分割,再修剪空白并移除空值
string[] tags = input.Split(',', StringSplitOptions.TrimEntries);
//結(jié)果:["C#", "Java", "Python"]

3.2.解析固定格式的配置(需保留空值位置)StringSplitOptions.None

      配置字符串:"100,,true, "(位置2為必填空值,位置4為空白標(biāo)記),需保留所有位置信息:

string config = "100,,true,  ";
//保留所有結(jié)果,不刪除空值或空白
string[] configValues = config.Split(',', StringSplitOptions.None);
//結(jié)果:["100", "", "true", "  "](后續(xù)可根據(jù)位置解析含義)

3.3.讀取CSV文件的字段(忽略空行但保留空白字段)StringSplitOptions.RemoveEmptyEntries

      CSV行:"Alice,,30, New York "(中間有必填空字段):

string csvLine = "Alice,,30,  New York ";
//移除純空字符串,但保留帶空白的字段(如"  New York ")
string[] fields = csvLine.Split(',', StringSplitOptions.RemoveEmptyEntries);
//結(jié)果:["Alice", "30", "  New York "]

4.注意事項(xiàng)

4.1.TrimEntries的兼容性

      該成員僅在.NET5、.NETCore3.0+及.NETFramework4.8+中可用,低版本需手動(dòng)處理(先分割,再用Trim()修剪每個(gè)元素,最后過(guò)濾空值)。

string[] result = input.Split(',')
                       .Select(s => s.Trim())
                       .Where(s => !string.IsNullOrEmpty(s))
                       .ToArray();

4.2.多分隔符場(chǎng)景同樣適用

      不僅支持單個(gè)分隔符,也支持多個(gè)分隔符(如按,和;分割):

string input = "apple; banana,, orange";
string[] result = input.Split(new[] { ',', ';' }, StringSplitOptions.TrimEntries);
//結(jié)果:["apple", "banana", "orange"]

5.總結(jié)

      StringSplitOptions是控制Split()方法結(jié)果格式的核心枚舉,選擇哪個(gè)成員取決于業(yè)務(wù)需求,合理使用該枚舉能避免后續(xù)對(duì)分割結(jié)果的繁瑣處理,讓代碼更簡(jiǎn)潔、健壯。

需完整保留所有分割結(jié)果(包括空值)→用None;

需移除純空值但保留空白→用RemoveEmptyEntries;

需清理空白并移除空值(.NET5+)→用TrimEntries。

到此這篇關(guān)于C#的StringSplitOptions枚舉的文章就介紹到這了,更多相關(guān)C# StringSplitOptions枚舉,C# StringSplitOptions內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法

    C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法

    這篇文章主要介紹了C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法,以實(shí)例形式分析了創(chuàng)建access數(shù)據(jù)庫(kù)及在access數(shù)據(jù)庫(kù)中建表的完整過(guò)程,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • C# 操作 access 數(shù)據(jù)庫(kù)的實(shí)例代碼

    C# 操作 access 數(shù)據(jù)庫(kù)的實(shí)例代碼

    這篇文章主要介紹了C# 操作 access 數(shù)據(jù)庫(kù)的實(shí)例代碼,需要的朋友可以參考下
    2018-03-03
  • Unity游戲腳本開(kāi)發(fā)的生命周期函數(shù)詳解(Update/FixedUpdate)

    Unity游戲腳本開(kāi)發(fā)的生命周期函數(shù)詳解(Update/FixedUpdate)

    本文介紹了Unity游戲開(kāi)發(fā)中腳本的生命周期函數(shù)Update/FixedUpdate的核心概念、技術(shù)原理、應(yīng)用場(chǎng)景、實(shí)踐應(yīng)用、常見(jiàn)問(wèn)題與解決方案及最佳實(shí)踐等內(nèi)容,通過(guò)學(xué)習(xí),可以掌握關(guān)鍵技術(shù)要點(diǎn),提升游戲開(kāi)發(fā)效率和項(xiàng)目質(zhì)量
    2026-05-05
  • C#中dynamic動(dòng)態(tài)類(lèi)型的具體使用

    C#中dynamic動(dòng)態(tài)類(lèi)型的具體使用

    C#中,dynamic是一種動(dòng)態(tài)類(lèi)型,用于在編譯時(shí)繞過(guò)類(lèi)型檢查,并將類(lèi)型檢查推遲到運(yùn)行時(shí),這種特性可以用來(lái)簡(jiǎn)化與動(dòng)態(tài)對(duì)象或需要高度靈活性的代碼的交互,下面就來(lái)具有介紹一下
    2025-12-12
  • C#實(shí)現(xiàn)輸入法功能詳解

    C#實(shí)現(xiàn)輸入法功能詳解

    本文主要介紹了C#實(shí)現(xiàn)輸入法的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • C#實(shí)現(xiàn)windows form倒計(jì)時(shí)的方法

    C#實(shí)現(xiàn)windows form倒計(jì)時(shí)的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)windows form倒計(jì)時(shí)的方法,涉及C#桌面程序設(shè)計(jì)中時(shí)間操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 解決C#運(yùn)行程序修改數(shù)據(jù)后數(shù)據(jù)表不做更新的問(wèn)題

    解決C#運(yùn)行程序修改數(shù)據(jù)后數(shù)據(jù)表不做更新的問(wèn)題

    近日,在使用C#連接數(shù)據(jù)庫(kù)的時(shí)候,對(duì)數(shù)據(jù)庫(kù)中的表做更新后,在當(dāng)前啟動(dòng)項(xiàng)目中去顯示表數(shù)據(jù)時(shí)雖然會(huì)發(fā)生一個(gè)更新,但是在結(jié)束程序運(yùn)行后再去觀察數(shù)據(jù)表中的記錄時(shí)發(fā)現(xiàn)并沒(méi)有發(fā)生一個(gè)變化,所以本文給大家解決一下這個(gè)問(wèn)題,需要的朋友可以參考下
    2023-08-08
  • Entity?Framework模型優(yōu)先與實(shí)體對(duì)象查詢(xún)

    Entity?Framework模型優(yōu)先與實(shí)體對(duì)象查詢(xún)

    這篇文章介紹了Entity?Framework模型優(yōu)先與實(shí)體對(duì)象查詢(xún),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 基于C#的socket編程的TCP異步的實(shí)現(xiàn)代碼

    基于C#的socket編程的TCP異步的實(shí)現(xiàn)代碼

    本篇文章主要介紹了基于C#的socket編程的TCP異步的實(shí)現(xiàn)代碼,詳解的講訴了TCP通信異步的實(shí)現(xiàn),有興趣的可以了解一下。
    2016-11-11
  • 基于C#實(shí)現(xiàn)的文件分割與合并工具

    基于C#實(shí)現(xiàn)的文件分割與合并工具

    文件分割與合并是數(shù)據(jù)管理中的基礎(chǔ)操作,常用于大文件傳輸(如郵件附件限制)、分布式存儲(chǔ)(拆分后存儲(chǔ)至多個(gè)介質(zhì))、數(shù)據(jù)備份(分卷壓縮)等場(chǎng)景,本工具基于 C# 語(yǔ)言開(kāi)發(fā)實(shí)現(xiàn)的文件分割與合并工具,需要的朋友可以參考下
    2026-04-04

最新評(píng)論

九龙县| 曲松县| 汕头市| 崇礼县| 肃南| 博乐市| 五原县| 贵溪市| 宜昌市| 新闻| 承德县| 商河县| 闸北区| 淄博市| 镇康县| 稷山县| 从化市| 错那县| 城固县| 屏东县| 招远市| 革吉县| 康平县| 缙云县| 汝阳县| 威远县| 丹阳市| 佛山市| 杨浦区| 翁牛特旗| 厦门市| 泸溪县| 克什克腾旗| 剑阁县| 揭西县| 莲花县| 临高县| 阳朔县| 广平县| 罗甸县| 乌鲁木齐市|