要求:
写一个长度为10的集合,要求在里面随机地存放10个数字(0~9)
但是要求所有的数字不重复
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Task02
{
class Program
{
//写一个长度为10的集合,要求在里面随机地存放10个数字(0~9)
//但是要求所有的数字不重复
static void Main(string[] args)
{
#region 方法1
//ArrayList list = new ArrayList();
//Random r = new Random();
//int rNew = r.Next(0, 10);
//list.Add(rNew);
//for (int i = 1; i < 10; i++)
//{
// while (true)
// {
// if (list.Contains(rNew))
// {
// rNew = r.Next(0, 10);
// }
// else
// {
// list.Add(rNew);
// break;
// }
// }
//}
//for (int i = 0; i < list.Count; i++)
//{
// Console.WriteLine(list[i]);
//}
//Console.ReadKey();
#endregion
#region 方法2
ArrayList list = new ArrayList();
Random r = new Random();
for (int i = 0; i < 10; i++)
{
int rNumber = r.Next(0, 10);
if (!list.Contains(rNumber))
{
list.Add(rNumber);
}
else
{
//一旦产生了重复的随机数,那么这次循环就不算数
i--;
}
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
Console.ReadKey();
#endregion
}
}
}
方法1是我自己写的,方法2是老师讲解的;老师的思路显然更清晰,如果产生了重复的随机数,那么这次循环就不算数 i--