Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.net中通过一些计算手动将CSV文件解析为对象_C#_Parsing_Csv - Fatal编程技术网

C# 在.net中通过一些计算手动将CSV文件解析为对象

C# 在.net中通过一些计算手动将CSV文件解析为对象,c#,parsing,csv,C#,Parsing,Csv,我有大约300MB的巨大CSV文件,我正在使用一个名为CsvHelper的库来读取它。读取整个文件不会花费太长时间。但是,我必须手动将其解析为对象,而不是使用自动转换。原因是,我必须根据每个数据做一些计算 例如,有时我需要将两个或多个字段合并为一个字段以将它们存储在对象中。或者我需要检查字段是否存在,并且值是否不为null。如果为空,我需要根据其他字段进行另一次计算 我还编写了自己的代码,逐行阅读,并通过逗号分隔标题和行,将它们转换为列表。普通阅读时间有所提高,但解析时间大致相同。解析整个对象大

我有大约300MB的巨大CSV文件,我正在使用一个名为CsvHelper的库来读取它。读取整个文件不会花费太长时间。但是,我必须手动将其解析为对象,而不是使用自动转换。原因是,我必须根据每个数据做一些计算

例如,有时我需要将两个或多个字段合并为一个字段以将它们存储在对象中。或者我需要检查字段是否存在,并且值是否不为null。如果为空,我需要根据其他字段进行另一次计算


我还编写了自己的代码,逐行阅读,并通过逗号分隔标题和行,将它们转换为列表。普通阅读时间有所提高,但解析时间大致相同。解析整个对象大约需要30分钟,我需要改进这一点。我没有用过任何类似的东西。这可能会有帮助,但我想知道是否还有其他更好的选择。

所以。。。你的问题是什么?我们无法帮助改进看不见的代码。然而,我怀疑CPU是瓶颈,而不是磁盘速度。您可以尝试使用
File.ReadAllLines
将所有内容读入内存,然后可能会有所不同。