如何用C#中的迭代器反向读取文本文件

如何用C#中的迭代器反向读取文本文件

我需要处理一个大文件,大约400 K行和200米,但有时我必须处理自下而上。如何在这里使用迭代器(收益率返回)?基本上我不喜欢把所有的东西都载入内存。我知道在.NET中使用迭代器更有效。



繁花不似锦
浏览 738回答 3
3回答

ibeautiful

您可以使用File.Readline获取行迭代器foreach (var line in File.ReadLines(@"C:\temp\ReverseRead.txt").Reverse()){     if (noNeedToReadFurther)         break;     // process line here     Console.WriteLine(line);}编辑:阅读后苹果01的评论,我运行了一些测试看起来像 .Reverse()实际上加载了整个文件。我用File.ReadLines()打印第一行控制台应用程序的40 MB文件内存使用情况是5MB..然后,用File.ReadLines().Reverse()打印最后一行相同的文件内存使用情况是95 MB.结语不管“反向()”做什么,这不是个好选择用于读取大文件的底部。
打开App,查看更多内容
随时随地看视频慕课网APP