class Program
{
static void Main(string[] args)
{
//产生一个长度为100的数组,为数组中的每一项随机填充1-100之间的数并且保证不重复
//存放1-100个数
int[] num=new int[100];
for (int i = 0; i < num.Length; i++)
{
num[i] = i + 1;
}
Random r = new Random();
//存放最终结果
int[] result=new int[100];
int max = 100;//设置随机数最大值
for (int j = 0; j < result.Length; j++)
{
//计算出随机产生的数组索引(0-99)
int index = r.Next(0,max);
//取出该索引位置所存的数
result[j]=num[index];
//用最后一个数替换掉已被放入result中的数
//这样num数组中从0到max-1又都是未被存放入result而且不重复的熟了
num[index]=num[max-1];
//随机产生的数组索引最大值减一
max--;
}
//打印结果
for (int i = 0; i < 100; i++)
{
if (i%10==0)
{
Console.WriteLine("/r/n");
}
Console.Write(result[i]+" ");
}
Console.Read();
}
}
#region 方法二
int[] intArr=new int[100];
ArrayList myList = new ArrayList();
Random rnd = new Random();
while (myList.Count<100)
{
int num = rnd.Next(1,101);
if (!myList.Contains(num))
{
myList.Add(num);
}
}
for (int i = 0; i < 100; i++)
{
if (i%10==0)
{
Console.WriteLine("\r");
}
intArr[i]=(int)myList[i];
Console.Write(intArr[i]+" ");
}
Console.ReadKey();
#endregion