在c#中向文本文件写入不同的数组
本文关键字:数组 文件 文本 | 更新日期: 2023-09-27 18:04:53
我已经把一些代码放在一起来生成多个随机数数组。代码每次都会生成一个不同的随机数数组,但是当我尝试将每个新数字集写入单个文本文件时,每个文件都有相同的数字写入(这些数字来自第一个生成的数组)。有人知道我如何编辑代码,使每个文件有一个不同的数组写入它?如果有帮助,我将添加代码来显示数字是如何生成的。
for (int repeat = 0; repeat < 100; repeat++)
{
Random random = new Random();
int[] randomNumbers = new int[50];
int[] array = new int[6];
//Generate array of random numbers
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:'CodeFolder'repeat.ToString() + ".txt"))
{
foreach (int number in array)
{
file.WriteLine(number);
}
}
}
编辑:抱歉。第一篇文章中使用的部分代码键入错误。无论如何,我已经编辑了代码,现在它是这样工作的。
string fileName = repeat.ToString();
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:'CodeFolder'" + fileName + ".txt"))
这一次,第一个文件写入了一个唯一的数字数组,但每个其他文件都包含相同的数组。不太清楚这是怎么回事
这段代码有两个问题。
-
"ToString"调用是在引号内,所以是字符串字面值(不是函数调用)。这意味着您只会得到一个文本文件。你可能想写:
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:'CodeFolder'" + repeat.ToString() + ".txt"))
-
通过非常快速地重新创建
Random
对象,您不允许正确的重新播种发生。您需要将其移出for
循环并放入您的函数或类中。
试着把
Random random = new Random();
在for循环之外。Random创建一个基于种子的随机值列表。如果默认种子值为0,重新创建随机变量,每个团队将重新启动相同的随机数列表,因此总是给出相同的数字。