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

一文解析C#中的StringSplitOptions枚舉

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

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

C#的StringSplitOptions枚舉

1.StringSplitOptions枚舉的常用成員

枚舉值

含義描述

適用場景

None

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

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

RemoveEmptyEntries

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

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

TrimEntries

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

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

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

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

2.1.StringSplitOptions.None(默認)

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

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

2.2.StringSplitOptions.RemoveEmptyEntries

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

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

2.3.StringSplitOptions.TrimEntries(.NET 5+)

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

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

3.常見使用場景

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

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

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

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

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

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.注意事項

4.1.TrimEntries的兼容性

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

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

4.2.多分隔符場景同樣適用

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

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

5.總結(jié)

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    C#中dynamic動態(tài)類型的具體使用

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

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

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

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

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

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

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

    Entity?Framework模型優(yōu)先與實體對象查詢

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

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

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

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

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

最新評論

南通市| 井陉县| 钟山县| 满洲里市| 新疆| 深泽县| 阜南县| 邢台县| 桓台县| 嘉兴市| 乳源| 忻城县| 自治县| 吉安县| 云安县| 宁德市| 汾西县| 延寿县| 乌什县| 东海县| 许昌县| 清苑县| 巴彦淖尔市| 海阳市| 利津县| 长岛县| 铜鼓县| 安庆市| 磐安县| 龙井市| 射洪县| 城市| 崇义县| 莱西市| 永康市| 高平市| 丽水市| 海伦市| 余庆县| 宁阳县| 萨嘎县|