CSV解析器在一个例程/函数中?

我知道有几个代码库可以根据标准解析CSV文件,但是,由于各种原因,我需要一个简单的例程(不是整个库)将CSV解析为DataTable或数组。 这样的动物是存在还是灭绝? (最好是C#,但我也可以翻译vb.net)

参考Microsoft.VisualBasic.FileIO ,您可以使用TextFieldParser

 using (var parser = new TextFieldParser(@"c:\data.csv") { TextFieldType = FieldType.Delimited, Delimiters = new string[] { "," } }) { while (!parser.EndOfData) { string[] fields; fields = parser.ReadFields(); //go go go! } } 

编写循环遍历每一行的自己的方法,并使用逗号作为分隔符使用split方法。

如果你想使用linq解析csv,这是一个简单的例子:

http://www.fryan0911.com/2009/05/read-data-from-csv-using-linq.html

编写自己的CSV解析器并不容易。 你会遇到很多边缘情况。

阅读: http : //www.secretgeek.net/csv_trouble.asp

@splander的回答可能是你使用内置函数最接近的答案。

试试CsvHelper (我维护的库)。 它可以在NuGet上使用。 它非常轻巧。 如果您只想要一小段代码,您只需复制CsvParser.cs源并稍微修改它即可。 基本上有一个函数可以完成所有解析,只有100多行,包括注释。 如果你想要一个例程,这将是一个很好的抓住。

如果使用CsvHelper库,则可以轻松读入自定义类对象的集合。

 var streamReader = // Create StreamReader to your CSV file. var csvReader = new CsvReader( streamReader ); var myObjects = csvReader.GetRecords();