简而言之,我使用Lumen CSV阅读器尝试将CSV数据读入我的程序。
我循环遍历行中的列:
// open the file "data.csv" which is a CSV file with headers
using (CsvReader csv = new CsvReader(new StreamReader(Path), true))
{
string[] headers = csv.GetFieldHeaders();
int RowCount = 1;
while (csv.ReadNextRecord())
{
int TakenValsRowPosCount = 1; //Leave the first value at 0 for weird style
for (int i = 0; i < csv.FieldCount; i++)
{
if (HeaderstoInput.Contains(headers[i]))
{
if(!String.IsNullOrWhiteSpace(csv[i]))
InputVals[RowCount, TakenValsRowPosCount] = Convert.ToDouble(csv[i]);
TakenValsRowPosCount++;
}
}
RowCount++;
}
}
出于某种原因,这项工作完全正常,直到我达到10.此值和此后的所有值都返回为&#34;&#34; (在手表中)。即使那里有数据。
我尝试从CSV中删除列以将第10列向左移动并读取它并且这样可行。所以它似乎不是数据本身的问题,只是第10列和更高的列。
我尝试将阅读器中的缓冲区大小更改为各种值。我似乎无法在其他地方找到任何关于这个问题的提法。
答案 0 :(得分:0)
通过快速查看代码,它似乎假定CSV文件具有固定数量的字段,这是根据字段标题或从文件读取的第一个记录计算的。
标题行有多少个字段?我怀疑那里可能只有10个。