c# - 在C#中处理大文本文件

标签 c# .net string c#-4.0 .net-4.0

我有超过 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/

相关文章:

string - Swift: 当我将项目命名为 "Foundation"时,String 无法转换为 NSString

javascript - 我想知道所有以 A 开头的名字我看起来怎么样

c# - 从 SysListView32 获取项目文本

c# - 您可以使用 LINQ to SQL 实体更新数据库吗?

c# - 向面板添加标签时具有一定的布局

c# - 从资源管理的角度来看,如何处理对 Task.Run 的多个请求?

c# - 如何选择MySQL列标题并将其显示为asp.net中gridview列中的行?

.net - Visual Studio探查器,如何跟踪[clr.dll]的使用情况

asp.net - 在静态 Web 方法(ASPNet Web 窗体)中调用 ResolveClientUrl

javascript - 为什么有两种 JavaScript 字符串?