本例的主要是思路是,如果检测到已经存在该数字,则将循环数后退一个,重新生成。
void static Main()
{
Random random = new Random();
bool repeat = true;
int temp ;
int[] store = new int[10];
for(int i = 0;i < 10;i++)
{
temp =random.Next(1,11);
for(int j = 0; j<i;j++)
{
repeat = false ;
if(temp == store[j])
{
repeat = true;
break;
}
}
store[i] = temp; //将不重复的值存储到定义的数组当中
}
for(int i = 0;i < 10;i++)
{
Console.WriteLine("store[{0}]为:{1}",i,store[i]);
}
}
如果所要生成的随机数比较少的话,可以将所有的先存到数组当中, 然后再随机交换数组当中的数字即可
CODE:
static void Main()
{
int[] store = new store[10]; //定义一个数组,并初始化
for(int i =1;i<11;i++) //通过循环将数组进行赋值
{
store[i-1] = i;
}
for(int j = 9;j>0;j--)
{
Random r = new Random();
int index = r.Next(0,j); //int index = r.Next(0,9); 这个值得商榷,感觉有些问题。
int temp = store[index];
store[index] = store[j];
store[j] = temp;