使用 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中文网其他相关文章!