2009-11-20 17 views
1

我正在寻找逐行读取CSV文件的最佳方法。我想知道做同样的最有效的方法是什么。当文件的大小很大时,我特别关心。 .NET类中的文件读取实用程序是最有效的吗?C#中高效的文件读取技巧

(PS:我有搜索词“高效”知道是否有人已经发布发布此之前,类似的问题)

回答

3

你可以试试这个:fast CSV Parser

这里的基准测试结果:

为了让更多的脚踏实地的数字, 含145个 领域和50,000条记录,读者 正在处理大约30 MB /秒的45 MB CSV文件。所以全部都是 ,花了1.5秒!机器规格为P4 3.0 GHz,1024 MB。

+0

谢谢!我喜欢的数字:) – pradeeptp 2009-11-20 10:42:40

1

在.NET中处理文件很好。如果你想用foreach以舒适的方式一次阅读一行,我有一个simple LineReader class你可能想看看(在MiscUtil更通用的版本)。

这样,您可以使用:

foreach (string line in new LineReader(file)) 
{ 
    // Do the conversion or whatever 
} 

这也与LINQ易于使用。你可能会也可能不会觉得这有帮助 - 如果Ngu Soon Hui的建议适合你,那可能是更好的“现成”解决方案。

+0

谢谢乔恩!我一定会看看它。 – pradeeptp 2009-11-20 10:42:00