首页 >后端开发 >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