不重复随机数

  /// <summary>
        /// 从1到33中任意选取不重复的6个随机数
        /// </summary>
        /// <returns></returns>
        public List<int> GenerateNumber2()
        {
            //用于存放1到33这33个数
            List<int> container = new List<int>(7);
            //用于保存返回结果
            List<int> result = new List<int>(6);
            Random random = new Random();
            for (int i = 1; i <= 7; i++)
            {
                container.Add(i);
            }
            int index = 0;
            int value = 0;
            for (int i = 1; i <= 2; i++)
            {
                //从[1,container.Count + 1)中取一个随机值,保证这个值不会超过container的元素个数
                index = random.Next(1, container.Count + 1);
                //以随机生成的值作为索引取container中的值
                value = container[index];
                //将随机取得值的放到结果集合中
                result.Add(value);
                //从容器集合中删除这个值,这样会导致container.Count发生变化
                container.RemoveAt(index);
                //注意这一句与上面一句能达到同样效果,但是没有上面一句快
                //container.Remove(value);
            }
            //result.Sort();排序
            return result;
        }

posted on 2012-02-15 14:25  xupeng  阅读(121)  评论(0编辑  收藏  举报

导航