首頁 > 後端開發 > C++ > 如何在 C# 中處理包含嵌入逗號的 CSV 欄位?

如何在 C# 中處理包含嵌入逗號的 CSV 欄位?

Linda Hamilton
發布: 2025-01-26 17:01:11
原創
521 人瀏覽過

How to Handle CSV Columns Containing Embedded Commas in C#?

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設置為trueTextFieldParser會以不同的方式處理帶引號的字段,防止其中的逗號被視為定界符。

最終輸出將正確地將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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板