【发布时间】:2017-01-01 04:07:21
【问题描述】:
我已经看到一堆使用 Split(',') 处理逗号分隔列表的示例,例如:
string csv = "1,2,3,4,a,5";
List<string> parts = csv.Split(',').ToList<string>();
但是会发生什么,你将如何处理这样的 CSV 字符串:
string csv = '"a,b","c,d","e","f",g,h,i';
我希望能够将 csv 字符串解析为列表或数组,更多的是了解处理其中包含逗号的字符串元素的最佳方法,而不是像 Split 这样的简单解析器对多余的逗号感到困惑。
Alexei 的评论很有帮助,但在我的现实生活示例中尝试过之后,他的解决方案遇到了一些障碍。所以为了额外的功劳。这是一个更准确的 csv 字符串,需要解析。
csv = '"name 1" <title 1>, "name, 2" <title 2>, name 3 <title 3>, name 4 <title 4>, name 5, name 6';
这些值将被分成:
"name 1" <title 1>
"name, 2" <title 2>
name 3 <title 3>
name 4 <title 4>
name 5
name 6
谢谢
【问题讨论】:
-
在 NuGet 上查找 CSV 解析器。
-
试试 CSVHelper:joshclose.github.io/CsvHelper
-
第二个字符串的输出期望是什么?
-
默认情况下,使用 Split 解析 CSV 的所有答案都是错误的,但由于某种原因,它们充满了它们:[