C# 随机数显示2个数字,而它应该只显示一个

C# 随机数显示2个数字,而它应该只显示一个,c#,C#,我正在玩生成随机数的游戏,我可以让它们生成,尽管我的控制台是.writeline(randomList[I]);似乎循环两次,然后显示两个结果,每个循环应该只显示一个值,用户应该按任意键才能获得下一个结果。有人能给我们一些启示吗?谢谢 class Program { static void Main(string[] args) { GenerateRandomNumbers(); } private static void GenerateRan

我正在玩生成随机数的游戏,我可以让它们生成,尽管我的控制台是.writeline(randomList[I]);似乎循环两次,然后显示两个结果,每个循环应该只显示一个值,用户应该按任意键才能获得下一个结果。有人能给我们一些启示吗?谢谢

class Program
{
    static void Main(string[] args)
    {
        GenerateRandomNumbers();
    }
    private static void GenerateRandomNumbers()
    {
        //Initialize an array 
        int[] randomList = new int[1000];
        //Initialize an instance of random class 
        Random rnd = new Random();
        // integer variable 
        int counter = 0;
            while (counter < 1000)
            {
                //store random num  
                int random = rnd.Next(1, 1001);

                if (Array.IndexOf(randomList, random) <= 0)
                {
                    //store random number into Array 
                    randomList[counter] = random;
                    counter++;
                }
            }
        //output elements in Array 
        for (int i = 0; i < 1000; i++)
        {
            Console.WriteLine(randomList[i]);
            Console.Read();
        }
        //output number of elements in Array 
       // Console.WriteLine(counter);
        Console.Read();
    }
类程序
{
静态void Main(字符串[]参数)
{
GenerateRandomNumbers();
}
私有静态void GenerateRandomNumbers()
{
//初始化数组
int[]随机列表=新int[1000];
//初始化random类的实例
随机rnd=新随机();
//整数变量
int计数器=0;
同时(计数器<1000)
{
//存储随机数
int random=rnd.Next(11001);

如果(Array.IndexOf(randomList,random)解决方案是在循环中使用Console.ReadLine()而不是Console.Read()

一些键快速连续生成两个字符,这可能会导致
Console.Read()
快速返回两次。至于生成随机数,您似乎在生成1到1000之间的数字,以填充数组中的1000个插槽,并在过程中检查冲突。您会发现,每次连续加法,冲突的几率都会增加到近100%。更好的方法是只需在之前创建1000个值然后执行随机洗牌。没有碰撞,性能更好。研究Fisher-Yates等算法。