Разобрать CSV в .NET

У меня есть текстовый файл в формате запятых, разделенных" на большинстве полей. Я пытаюсь передать это во что-то, через что я могу перечислить (например, Generic Collection). У меня нет контроля над тем, как выводится файл, и над тем, какой символ он использует для разделителя.

В этом случае поля разделяются запятой, а текстовые поля заключаются в" Метки. Проблема, с которой я сталкиваюсь, состоит в том, что в некоторых полях есть кавычки (т.е. 8" Tray) и случайно выбираются в качестве следующего поля. В случае числовых полей у них нет кавычек вокруг них, но они начинаются со знака + или - (обозначая положительное / отрицательное число).

Я думал о RegEx, но мои навыки не так хороши, так что, надеюсь, кто-то может предложить некоторые идеи, которые я могу попробовать. В этом файле содержится около 19 000 записей, поэтому я стараюсь сделать это максимально эффективно. Вот пара примеров строк данных:

"00","000000112260   ","Pie Pumpkin                             ","RET","6.99 ","     ","ea ",+0000000006.99000
"00","000000304078   ","Pie Apple caramel                       ","RET","9.99 ","     ","ea ",+0000000009.99000
"00","StringValue here","8" Tray of Food                             ","RET","6.99 ","     ","ea ",-00000000005.3200

Есть еще много полей, но вы можете получить картину ....

Я использую VB.NET, и у меня есть общие настройки List, чтобы принять данные. Я пытался использоватьCSVReader и, кажется, работает хорошо, пока вы не достигнете записи, подобной третьей (с цитатой в текстовом поле). Если бы я мог как-то заставить его обрабатывать дополнительные кавычки, тогда опция CSVReader будет работать отлично.

Спасибо!

Ответы на вопрос(12)

Ваш ответ на вопрос