小编ere*_*rez的帖子

如何从c#中的文本文件中获取某些行?

我在C#工作,我有一个大文本文件(75MB)我想保存与正则表达式匹配的行

我尝试使用streamreader和ReadToEnd读取文件,但它需要400MB的内存

并在再次使用时创建内存不足异常.

然后我尝试使用File.ReadAllLines():

string[] lines = File.ReadAllLines("file");

StringBuilder specialLines = new StringBuilder();


foreach (string line in lines)

 if (match reg exp)

  specialLines.append(line);
Run Code Online (Sandbox Code Playgroud)

这一切都很棒,但是当我的函数结束时,所采用的内存并没有清除,只留下300MB的已用内存,只有在调用函数并执行行时:string [] lines = File.ReadAllLines("file"); 我看到内存清理为50MB给予或接受然后重新分配回200MB

如何清除此内存或以不同的方式获取我需要的行?

c# string file

3
推荐指数
1
解决办法
309
查看次数

标签 统计

c# ×1

file ×1

string ×1