Итак, чтобы получить список из CSV
StringBuilder csvIn = new StringBuilder(@"ID,Name
1, David
2, Bob");
using (var r = new ChoCSVReader(csvIn)
.WithFirstLineHeader()
)
{
var list = r.Select(r1 => r1.Values).ToList();
}
ОБНОВЛЕНИЕ:
Чтобы получить заголовки, приведите запись к IDictionary и используйте свойство Keys дляэто, чтобы получить ключи.
Для автоматического обнаружения типов данных столбцов CSV необходимо установить MaxScanRows в анализаторе.В противном случае все столбцы будут обрабатываться как строковый тип.
StringBuilder csvIn = new StringBuilder(@"ID,Name,Date
1, David, 1/1/2018
2, Bob, 2/12/2019");
using (var r = new ChoCSVReader(csvIn)
.WithFirstLineHeader()
.WithMaxScanRows(2)
)
{
foreach (IDictionary<string, object> rec in r.Take(1))
{
foreach (var kvp in rec)
Console.WriteLine($"{kvp.Key} - {r.Configuration[kvp.Key].FieldType}");
}
}