数组的每个参数的随机值

时间:2014-07-08 15:02:44

标签: c# arrays random numbers

我的程序有问题。我想设置我的数组有多少索引,然后为每个索引创建自己的随机值。而不是那个循环foreach为每个索引创建一个值。我尝试使用for和数组长度,但它没有用。我做错了什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Set the number of arguments in mineArray:");
            string argumentsNumber = Console.ReadLine();
            int argumentsNumberInt = Convert.ToInt32(argumentsNumber);
            int[] mineArray = new int[argumentsNumberInt];

            //set up values to each index of array
            for (int i = 0; i < mineArray.Length; i++)
            {
                Random rand = new Random();
                mineArray[i] = rand.Next(0, 100);
                Console.WriteLine(Convert.ToString(mineArray[i]));

            }
            //end of the program
            Console.ReadLine();

        }
    }
}

1 个答案:

答案 0 :(得分:0)

在循环外初始化随机:

Random rand = new Random();

for (int i = 0; i < mineArray.Length; i++)
{           
    mineArray[i] = rand.Next(0, 100);
    Console.WriteLine(mineArray[i]); // you don't need to convert to string
}

当您创建Random类的实例时,它使用当前系统标记作为伪随机数生成的种子。如果你很快就创建了几个Random实例,那么它们会得到相同的种子,你在数组中会有相同的数字。