可以将1-20存入列表中,循环,第一次产生1-20的随机数,取出列表中对应随机数位置的数,并将此数在列表中删除,第二次产生1-19的随机数,一次类推即可。。。
网上复制一段不用List的代码略作修改,供你参考:
int tt, i = 0, k = 0, p;
int[] array = new int[20];
Random r = new Random();
array[0]=r.Next(0,20);
while (i < 20)
{
p = 0;
tt = r.Next(0, 20);
for (k = 0; k < i;k++ )
{
if (tt == array[k]) p = 1;
}
if (p == 0)
{
array[i] = tt;
i++;
}
}
Random ra = new Random();
List
while (list.Count < 20)
{
int i = ra.Next(1, 21);
if (!list.Contains(i))
list.Add(i);
}
static void Main(string[] args)
{
Listnumbers = new List ();
Random r = new Random();
for (int i = 1; i < 21; i++)
{
numbers.Insert(r.Next(0, numbers.Count), i);
}
}