gpt4 book ai didi

c# - 如何在 C# 中处理大文本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:29 27 4
gpt4 key购买 nike

我正在编辑我之前在循环中使用 if 条件编写的一些列表,但是如果文本文件超过大约 20 MB,它会显示 溢出。如果超过 1 MB,它会加载永远。例如

string[] x = File.ReadAllLines(openFileDialog1.FileName);

string a = "";

for (int i = 0; i < x.Length; i++)
{
if (x[i].Length > 9 && x[i] < 13)
{
a += "" + x[i] + "\r\n";
}
}

这只是一个示例,如果您知道可以帮助我的主题,请发布

最佳答案

从将 String 更改为 StringBuilder 开始:

string[] x = File.ReadAllLines(openFileDialog1.FileName);

StringBuilder sb = new StringBuilder();

//TODO: x[i] < 13 (taken from the question) seems to be erroneous
// Do you mean x[i].Length < 13?
for (int i = 0; i < x.Length; i++)
if (x[i].Length > 9 && x[i] < 13)
sb.AppendLine(x[i]);

string a = sb.ToString();

下一次尝试可以是 Linq,如下所示:

string a = string.Join(Environment.NewLine, File
.ReadLines(openFileDialog1.FileName)
.Where(line => line.Length > 9 && line.Length < 13));

当执行 a += 时,您重新创建 a string (string 是不可变类,不能修改);在循环 中重新创建string 看起来慢得要死StringBuilder 就是专门为这种情况设计的类。

关于c# - 如何在 C# 中处理大文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48860429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com