【发布时间】:2020-11-16 14:26:35
【问题描述】:
我需要生成一个长度在 1k 字节到 2K 字节之间的随机字母数字,以将其存储到 csv
我遇到了一个错误
System.ArgumentOutOfRangeException: '容量小于 目前的规模。参数名称:requiredLength'
private const String chars = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
protected void Button1_Click(object sender, EventArgs e)
{
String ID;
String stringContent;
int records = 100000;
StringBuilder csvcontent = new StringBuilder();
for (int r = 0; r < records; r++)
{
Guid guid = Guid.NewGuid();
ID = guid.ToString();
stringContent = GenerateRandomString(256000);
csvcontent.AppendLine(ID + "," + stringContent);
}
File.AppendAllText(csvPath, csvcontent.ToString());
}
File.AppendAllText(csvPath, csvcontent.ToString());
private string GenerateRandomString(int strLength)
{
return new string(Enumerable.Repeat(chars, strLength)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
是不是因为字符串不能容纳那么多字符?有什么办法可以解决吗?
【问题讨论】:
-
您在哪一行收到此错误?
-
上线'csvcontent.AppendLine(ID + "," + stringContent);'
-
您正在尝试创建一个长度超过 250 亿个字符的 StringBuilder,即接近 50GB。您应该改为将每一行直接写入文件。
标签: c# asp.net visual-studio csv