首页 > 后端开发 > C++ > 如何处理C#中包含嵌入式逗号的CSV列?

如何处理C#中包含嵌入式逗号的CSV列?

Linda Hamilton
发布: 2025-01-26 17:01:11
原创
558 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板