首頁 >後端開發 >C++ >如何使用C#用引號中包含逗號的字段來解析CSV文件?

如何使用C#用引號中包含逗號的字段來解析CSV文件?

DDD
DDD原創
2025-01-26 17:06:101001瀏覽

How to Parse CSV Files with Comma-Delimited Fields Enclosed in Quotes Using C#?

使用 C# 處理 CSV 解析中的引號

當字段本身包含逗號時,正確解析 CSV 文件會變得複雜。本文演示了一個強大的 C# 解決方案,用於從此類 CSV 文件中提取數據,重點關注逗號分隔字段用雙引號引起來的場景。

當字段(例如“Corvallis, OR”)在其引用的內容中包含逗號時,就會出現挑戰。 在這種情況下,基於逗號的標準字符串分割將會失敗。 解決方案在於使用 Microsoft.VisualBasic.FileIO.TextFieldParser 類。

此類專門設計用於處理帶有引號字段的分隔文件。 這是一個 C# 代碼示例:

<code class="language-csharp">using Microsoft.VisualBasic.FileIO;
using System.IO;

string csvData = "2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34";

using (TextFieldParser parser = new TextFieldParser(new StringReader(csvData)))
{
    parser.HasFieldsEnclosedInQuotes = true;
    parser.SetDelimiters(",");

    while (!parser.EndOfData)
    {
        string[] fields = parser.ReadFields();
        foreach (string field in fields)
        {
            Console.WriteLine(field);
        }
    }
}</code>

此代碼片段有效地解析 CSV 數據,正確處理引號內的字段,確保這些引號內的逗號被視為字段的一部分,而不是分隔符。 using 語句通過自動關閉 TextFieldParser 來確保正確的資源管理。 即使字段結構複雜,這種方法也能保證從 CSV 文件中準確提取數據。

以上是如何使用C#用引號中包含逗號的字段來解析CSV文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn