我有超过 4GB 的文本文件(csv 格式),我想在 C# 中使用 linq 处理这个文件。
我在加载 csv 并转换为类后运行复杂的 linq 查询?
但文件大小为 4gb,尽管应用程序内存是文件大小的两倍。
我如何处理(linq 和新结果)大文件?
谢谢
最佳答案
您可以逐行读取和处理文件,而不是将整个文件加载到内存中。
using (var streamReader = new StreamReader(fileName))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
// analize line here
// throw it away if it does not match
}
}
[编辑]
如果您需要对文件中的数据运行复杂的查询,正确的做法是将数据加载到数据库中,让 DBMS 负责数据检索和内存管理。
关于c# - 在C#中处理大文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6464628/