用头解析C#中的CSV文件

用头解析C#中的CSV文件

在C#中是否有解析CSV文件的默认/官方/推荐方法?我不想使用我自己的解析器。

此外,我还看到了一些人使用ODBC/OLE DB通过文本驱动程序读取CSV的实例,许多人因为它的“缺点”而不鼓励这样做。这些缺点是什么?

理想情况下,我正在寻找一种方法,通过它可以使用第一个记录作为标题/字段名,按列名读取CSV。给出的一些答案是正确的,但基本上可以将文件反序列化为类。


慕沐林林
浏览 878回答 3
3回答

慕容708150

CsvHelper(我维护的库)会将CSV文件读入自定义对象。var&nbsp;csv&nbsp;=&nbsp;new&nbsp;CsvReader(&nbsp;File.OpenText(&nbsp;"file.csv"&nbsp;)&nbsp;);var&nbsp;myCustomObjects&nbsp;=&nbsp;csv.GetRecords<MyCustomObject>();有时候你并不拥有你想要读到的东西。在这种情况下,您可以使用FLUENT映射,因为您不能将属性放在类上。public&nbsp;sealed&nbsp;class&nbsp;MyCustomObjectMap&nbsp;:&nbsp;CsvClassMap<MyCustomObject>{ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;MyCustomObjectMap() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map(&nbsp;m&nbsp;=>&nbsp;m.Property1&nbsp;).Name(&nbsp;"Column&nbsp;Name"&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map(&nbsp;m&nbsp;=>&nbsp;m.Property2&nbsp;).Index(&nbsp;4&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map(&nbsp;m&nbsp;=>&nbsp;m.Property3&nbsp;).Ignore(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map(&nbsp;m&nbsp;=>&nbsp;m.Property4&nbsp;).TypeConverter<MySpecialTypeConverter>(); &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP