删除双引号内的逗号,然后删除双引号

时间:2016-05-05 02:13:37

标签: c# csv entity delimiter filehelpers

我在解析.csv时遇到使用FileHelpers创建分隔符字段的问题。我有一行数据在LINQ操作期间总是崩溃,类似于他们站点上的文件管理器的例子。

错误出现在列有引号的位置,例如此行:

data1,data2,“data3a,data3b”,data4

如何删除引号中的逗号,然后删除data3a和data3b的引号?

.csv文件中的特定列有两件事,但我无法确定应该使用哪个分隔符字段。

如果我不清楚或者这个问题得到了回答,或者下面没有有目的的评论。

非常感谢。

编辑: 类的代码

排:2010年,非异族黑人,男性,“肾病,肾病综合征和肾病”,70,1

//delimiters, ignore first row, separate with comma
[DelimitedRecord(",")]
[IgnoreFirst()]
public class CauseofDeathClass
{

    public int Year { get; set; }
    public string Ethnicity { get; set; }
    public string Sex { get; set; }
    public string Cause_of_Death { get; set; }
    public int Count { get; set; }
    public int Percent { get; set; }

}

1 个答案:

答案 0 :(得分:2)

使用FieldQuoted属性。有关不同的QuoteMode选项,请参阅here

//delimiters, ignore first row, separate with comma
[DelimitedRecord(",")]
[IgnoreFirst()]
public class CauseofDeathClass
{    
    public int Year { get; set; }
    [FieldQuoted('"', QuoteMode.OptionalForBoth)]
    public string Ethnicity { get; set; }
    [FieldQuoted('"', QuoteMode.OptionalForBoth)]
    public string Sex { get; set; }
    [FieldQuoted('"', QuoteMode.OptionalForBoth)]
    public string Cause_of_Death { get; set; }
    public int Count { get; set; }
    public int Percent { get; set; }
}