Я не мог получить ничего, чтобы пройти все мои тесты для разбора CSV, поэтому я написал что-то простое, чтобы сделать это. AnotherCsvParser
Он делает все, что мне нужно ... но должно быть легко разбираться и расширяться для ваших нужд.
Дано:
public class ABCD
{
public string A;
public string B;
public string C;
public string D;
}
Предполагается, что столбцы расположены в порядке, в котором определены поля .. (но было бы легко расширить, чтобы прочитать атрибут или что-то)
Это работает:
var output = NigelThorne.CSVParser.ReadCSVAs<ABCD>(
"a,\"b\",c,d\n1,2,3,4\n\"something, with a comma\",\"something \\\"in\\\" quotes\",\" a \\\\ slash \",\n,,\"\n\",");
такой, что:
Assert.AreEqual(4, output.ToArray().Length);
var row1 = output.ToArray()[0];
Assert.AreEqual("a", row1.A);
Assert.AreEqual("b", row1.B);
Assert.AreEqual("c", row1.C);
Assert.AreEqual("d", row1.D);
Примечание: вероятно, это не очень быстро с большим количеством данных ... опять же, не проблема для меня.