Библиотека с открытым исходным кодом Angara.Table позволяет загружать CSV в типизированные столбцы, поэтому вы можете получить массивы из столбцов. Каждый столбец может быть проиндексирован как по имени, так и по индексу. Смотри http://predictionmachines.github.io/Angara.Table/saveload.html.
Библиотека следует RFC4180 для CSV; это позволяет вывод типа и многострочные строки.
Пример:
using System.Collections.Immutable;
using Angara.Data;
using Angara.Data.DelimitedFile;
...
ReadSettings settings = new ReadSettings(Delimiter.Semicolon, false, true, null, null);
Table table = Table.Load("data.csv", settings);
ImmutableArray<double> a = table["double-column-name"].Rows.AsReal;
for(int i = 0; i < a.Length; i++)
{
Console.WriteLine("{0}: {1}", i, a[i]);
}
Вы можете увидеть тип столбца, используя тип Column, например,
Column c = table["double-column-name"];
Console.WriteLine("Column {0} is double: {1}", c.Name, c.Rows.IsRealColumn);
Поскольку библиотека ориентирована на F #, вам может понадобиться добавить ссылку на сборку FSharp.Core 4.4; нажмите «Добавить ссылку» в проекте и выберите FSharp.Core 4.4 в разделе «Сборки» -> «Расширения».