CSV Delimitado Parcial no .NET

Tenho um arquivo de texto em formato separado por vírgula, delimitado por" na maioria dos campos. Estou tentando inserir isso em algo que eu possa enumerar (Coleção Genérica, por exemplo). Não tenho controle sobre como o arquivo é produzido nem o caractere usado para o delimitado

Nesse caso, os campos são separados por vírgula e os campos de texto são colocados em" marks. O problema que encontro é que alguns campos possuem aspas (ou seja, 8" Bandeja) e são acidentalmente escolhidas como o próximo campo. No caso de campos numéricos, eles não possuem aspas, mas começam com um sinal de + ou de - (representando um número positivo / negativo

Eu estava pensando em um RegEx, mas minhas habilidades não são tão boas, então espero que alguém possa ter algumas idéias que eu possa tentar. Existem cerca de 19.000 registros neste arquivo, por isso estou tentando fazê-lo da forma mais eficiente possível. Aqui estão alguns exemplos de linhas de dados:

"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

Existem muito mais campos, mas você pode obter uma imagem ....

Estou usando o VB.NET e tenho uma configuração de lista genérica para aceitar os dados. Eu tentei usar CSVReader e parece funcionar bem até que você atinja um registro como o terceiro (com uma citação no campo de texto). Se de alguma forma eu conseguir que ele lide com cotações adicionais, a opção CSVReader funcionará muito bem.

Obrigado

questionAnswers(12)

yourAnswerToTheQuestion