使用没有类型的FileHelpers

时间:2012-10-31 15:46:50

标签: c# csv filehelpers

我有一个从另一个系统导出的CSV文件,其中列顺序和定义可能会发生变化。我发现FileHelpers非常适合读取csv文件,但是除非在编译应用程序之前知道列的顺序,否则它似乎无法使用它。我想知道它是否可以以非类型的方式使用FileHelpers。目前我正在使用它来阅读文件,但后来我正在手工做的其他事情,所以我有一个班级:

[DelimitedRecord(",")]
public class CSVRow
{
    public string Content { get; set; }
}

这意味着每一行都在Content之内,这很好,因为我已经拆分了行等等,但由于文件中固有的逗号,我现在遇到此方法的问题,所以一行可能是:

"something",,,,0,,1,,"something else","","",,,"something, else"

我对这个字符串上的逗号的简单拆分不起作用,因为在“某些东西”中有一个逗号,它会被拆分。显然,FileHelpers之类的东西非常方便,解析这些值并考虑引号。那么有可能以这种方式使用FileHelpers,没有已知的列定义,或者至少能够传递一个csv字符串并获取值列表,或者是否有任何好的库来执行此操作?

1 个答案:

答案 0 :(得分:4)

如果您知道(或可以推断)运行时列的顺序和定义,则可以使用FileHelpers' RunTime records

否则,有很多关于CSV库的问题,例如Reading CSV files in C#

编辑:更新链接。原件归档here