我有一个 CSV 文件正在从另一个系统导出,其中列顺序和定义可能会更改。我发现 FileHelpers 非常适合读取 csv 文件,但除非您在编译应用程序之前知道列的顺序,否则您似乎无法使用它。我想知道是否可以以非类型化方式使用 FileHelpers。目前我正在使用它来读取文件,但是我正在手动执行其他所有操作,所以我有一个类:
[DelimitedRecord(",")]
public class CSVRow
{
public string Content { get; set; }
}
这意味着每一行都在 内Content
,这很好,因为我已经拆分了行等,但是由于文件中固有的逗号,我现在遇到了这种方法的问题,所以一行可能是:
"something",,,,0,,1,,"something else","","",,,"something, else"
我对这个字符串上的逗号的简单拆分不起作用,因为“something, else”中有一个逗号会被拆分。显然,这里是像 FileHelpers 这样的东西真正派上用场的地方,解析这些值并考虑引号。那么是否有可能以这种方式使用 FileHelpers,而无需已知的列定义,或者至少能够将其传递给 csv 字符串并返回值列表,或者是否有任何好的库可以做到这一点?