gpt4 book ai didi

c# - 如果它包含 100000 行数据,如何在 C# 中编写超快的 ascii 文件?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:37 26 4
gpt4 key购买 nike

我有一个代码可以从 C# 中的随机类生成随机字符串和数字。然后将其写入文本文件。我怎样才能提高性能?代码如下:

    int i = 0;
Record[] rec = new Record[100000];
Class1 cl = new Class1();
Random random = new Random();
while (i < 100000)
{
rec[i].num1 = random.Next();
rec[i].num2 = random.Next();
rec[i].mult = rec[i].num1 * rec[i].num2;
rec[i].rel = true;
rec[i].name = cl.generateRandomString(1);
rec[i].var_set = cl.generateRandomString(2);
using (StreamWriter writer = new StreamWriter("important.txt", true))
{

writer.Write(rec[i].name);
writer.Write(" ");
writer.Write(rec[i].var_set);
writer.Write(" ");
writer.Write(rec[i].num1);
writer.Write(" ");
writer.Write(rec[i].num2);
writer.Write(" ");
writer.Write(rec[i].mult);
writer.Write(" ");
writer.WriteLine(rec[i].rel);
}
i++;

最佳答案

根据您在@Ben 的评论中提供的代码,我得到了您正在使用的代码。

Record[] rec = new Record[100000]; 
Class1 cl = new Class1();
Random random = new Random();
while (i < 100000)
{
rec[i].num1 = random.Next();
rec[i].var_set = cl.generateRandomString(2);
using (StreamWriter writer = new StreamWriter("important.txt", true))
{
writer.Write(rec[i].name);
writer.Write(" ");
}
i++;
}

我看到的最大问题是您要为循环的每次迭代打开 streamwriter。您可能希望将代码更改为类似这样的内容,以便文件只打开一次。

int i = 0;
Record[] rec = new Record[100000];
Class1 cl = new Class1();
Random random = new Random();
StreamWriter sr = new StreamWriter("important.txt", true);

try
{
while (i < 100000)
{
rec[i].num1 = random.Next();
rec[i].var_set = cl.generateRandomString(2);
sr.Write(rec[i].name);
sr.Write(" ");
i++;
}
}
finally
{
sr.Close();
}

关于c# - 如果它包含 100000 行数据,如何在 C# 中编写超快的 ascii 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863406/

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