2016-05-05 5 views
1

У меня возникли проблемы с созданием поля разделителя с использованием FileHelpers при разборе .csv. У меня есть одна строка данных, которая всегда сбой во время операции LINQ, аналогичная примеру файлообменников на их сайте.Удаление запятой в двойных кавычках, а затем удаление двойных кавычек

ошибка появляется в том, где столбец имеет кавычки, например, этот ряд:

data1, data2 «data3a, data3b», Data4

Как удалить запятую в кавычках, а затем удалить кавычки для данных3a и data3b?

Этот конкретный столбец в файле .csv имеет две вещи, но я не могу понять, какие поля разделителей я должен использовать для этого.

Если я неясен или на этот вопрос был дан ответ или нет целенаправленного комментария ниже.

спасибо.

EDIT: Код класса

Строка: 2010, неиспаноговорящего ЧЕРНЫЙ, MALE, "нефриты, нефротический синдром и нефроз", 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; } 

} 
+0

Можете ли вы показать свой код и где он ошибается? –

+0

Я добавил код класса, код для прохождения. CSV-файла похож на пример для разделителей на filehelpers.com – Roys

+0

[Чтение CSV-файла в .NET?] (Http://stackoverflow.com/questions/1405038/read-a-csv-file-in-net) – MichaelMao

ответ

2

Используйте FieldQuoted атрибут. См. here для разных параметров QuoteMode.

//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; } 
}