我需要读取多个csv文件并将它们合并。合并数据用于生成图表(使用.NET图表控件)。阅读具有不同标题/列的csv日志文件
到目前为止,我用一个简单的StreamReader做到了这一点,并添加一切一个数据表:
while (sr.Peek() > -1)
{
strLine = sr.ReadLine();
strLine = strLine.TrimEnd(';');
strArray = strLine.Split(delimiter);
dataTableMergedData.Rows.Add(strArray);
}
但现在有问题,该日志文件可以改变。正如你在这里看到的,更新的日志文件有更多的列:
我目前的程序现在不起作用,我正在寻求建议如何做到这一点。性能很重要,因为每个日志文件都包含大约1500行和最多100列,并且日志文件合并到一年期间(等于365个文件)。
我会这样做:创建一个DataTable,它应该在最后包含所有数据,并将每个日志文件读入单独的DataTable。在每次读取操作后,我会将单独的DataTable添加到“大”DataTable中,检查列是否已更改,并添加新列(如果有)。
但是我担心使用DataTable会影响性能。
注意:我正在用winforms做这件事,但我认为这无关紧要。
编辑:试过CsvReader但这比我目前的解决方案慢大约4倍。