如果未输入,则使用Filehelpers忽略CSV中的最后一行

我使用FileHelpers构建了一个程序来解析CSV文件,除了我遇到问题外,它还可以创建奇迹。 一些文件 – 但不是全部 – 最后有一些额外的行,其中包含与实际字段无关的信息。

像这样

... 31,4104019, ,,1043,,,0,,Ventas Total Credito,1,1,277.98,0,0,0,0,21.5040000000,V, 31, ,11212302,,1043,,,0,,Ventas Total Credito,1,1,33.28,0,0,0,0,21.5040000000,V, 31, ,11212307,,1043,,,0,,Ventas Total Credito,1,1,277.98,0,0,0,0,21.5040000000,V, ;Importado="01/11/2013" //blank line here too 

我知道FileHelpers有

 [IgnoreLast(3)] public class whatever... 

选项,但由于只有部分文件具有额外的3行,因此对所有文件使用此选项可能会导致某些文件忽略最后3条记录。

有没有办法告诉它什么时候忽略一条线? 或者我应该先单独阅读文件并自行删除这些行?

您可以使用BeforeReadRecord事件或在记录INotifyRead接口中实现更简单的操作。

在这两种情况下都使用e.SkipThisRecord = true; 在你需要丢弃的情况下