1、固定数组乱序排列:
设数组包括1-999的所有整数,怎样将该数组乱序排列2、生成指定数量的4位随机数,该数量少于9000(9999-1000+1)private List<int> genRandomCode(int num)
        {
            Random ran = new Random();//实例一个随机器
            List<int> list = new List<int>(num);//定义一个指定容量的链表
            int i = 1;
            while (i <= num)
            {
                int temp = ran.Next(1000, 10000)
                if (!list.Contains(temp))//如果链表中不存在这个数
                {
                    list.Add(temp);//链表中添加该数
                    i++;
                }
            }
            return list;
        }这个方法总觉得不太可靠,
一是list是不是比较占内存,用数组或字典能不能好点
二是当要求生成的数量比较大时,random.next如果总是找到重复的值,该方法的结束时间是不是变得不可预测

解决方案 »

  1.   

    public List<int> GenerateNumber()
    {
            Random  random = new Random();
            List<int> number = new List<int>(9000);
            List<int> result = new List<int>(9000);
            for (int i = 0; i < 10; i )
            {
                    number.Add(i);
            }
            for (int i = 0; i < 4; i )
            {
                    int tempNum = random.Next(0, number.Count);
                    result.Add(number[tempNum]);
                    number.RemoveAt(tempNum);
            }
            return result;
    }