C#超大字符串操作(内存不足)

Luk*_*ina 17 c# string file-io

我需要从磁盘读取1gb原始文本文件到ram以在C#中进行一些字符串操作.

string contents = File.ReadAllText(path)
Run Code Online (Sandbox Code Playgroud)

抛出内存异常(不出所料)

最好的方法是什么?

Dav*_*ave 13

可能还会考虑使用内存映射文件


Lou*_*ier 7

如果您真的想在内存中进行这种巨大的字符串操作,那么只要您满足以下要求,就不会再运气了

  1. 编译目标x64
  2. 在x64系统中运行
  3. 目标.NET 4.5

这将解除您所面临的所有内存限制.您的进程内存仅受计算机内存的限制,并且从.NET 4.5 for x64开始,单个.NET对象没有2GiB限制.