C#中處理包含嵌入逗號的CSV列
在分割CSV文件時,您可能會遇到包含逗號的列,例如嵌入的地址或描述。雖然傳統的定界符分割方法在這種情況下可能會失敗,但C#中有一些健壯的解決方案可用。
一種方法是使用Microsoft.VisualBasic.FileIO.TextFieldParser
類。此類處理解析分隔的文本文件,允許對帶引號的字段進行特定處理。
考慮以下CSV示例,地址列中包含嵌入逗號:
<code>"2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34"</code>
要使用TextFieldParser
解析此CSV,您可以按照以下代碼示例操作:
<code class="language-csharp">using Microsoft.VisualBasic.FileIO; TextFieldParser parser = new TextFieldParser(new StringReader(csv)); parser.HasFieldsEnclosedInQuotes = true; parser.SetDelimiters(","); string[] fields; while (!parser.EndOfData) { fields = parser.ReadFields(); foreach (string field in fields) { Console.WriteLine(field); } } parser.Close();</code>
通過將HasFieldsEnclosedInQuotes
設置為true
,TextFieldParser
會以不同的方式處理帶引號的字段,防止其中的逗號被視為定界符。
最終輸出將正確地將CSV分割成各個字段,保留“Corvallis, OR”地址中的嵌入逗號:
<code>"2" "1016" "7/31/2008 14:22" "Geoff Dalgas" "6/5/2011 22:21" "http://stackoverflow.com" "Corvallis, OR" "7679" "351" "81" "b437f461b3fd27387c5d8ab47a293d35" "34"</code>
通過利用TextFieldParser
類,您可以有效地處理包含嵌入逗號的CSV列,確保准確的數據解釋和操作。
以上是如何在 C# 中處理包含嵌入逗號的 CSV 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!