Random类
方法1:数组来保存索引号,先随机生成一个数组位置
//产生不重复的随机数 namespace ArrayRandTwo { class Program { static void Main(string[] args) { int[] a = new int[15]; for (int i = 0; i < a.Length ; i++) a[i] = i; Random r = new Random(); //新的数组result用来保存随机生成的不重复的10个数 int[] result = new int[10]; //设置上限 int ulimit = 15; int id; for (int j = 0; j < 10; j++) { id = r.Next(1, ulimit - 1); //在随机位置取出一个数,保存到结果数组 result[j] = a[id]; //最后一个数复制到当前位置 a[id] = a[ulimit - 1]; //位置的上限减少一 ulimit--; } foreach (int k in result) { Console.Write("{0} ", k); } Console.ReadKey(); } } }
方法2: 利用Hashtable
必须引进空间名:using System.Collections; Hashtable中文称作哈希表,也叫散列表,是根据key和value进行访问存储的数据结构
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //Hashtable的命名空间System.Collections,通过using进行引入。 namespace ArrayRandThree { class Program { static void Main(string[] args) { //实例化Hashtable Hashtable hashtable = new Hashtable(); Random rm = new Random(); int RmNum = 100; for (int i = 0; hashtable.Count < RmNum; i++) { //产生随机数给nValue int nValue = rm.Next(100); if (!hashtable.ContainsValue(nValue) && nValue != 0) { ////增加元素nValue hashtable.Add(nValue, nValue); //value的遍历 foreach (int value in hashtable.Values) { Console.WriteLine(value); } } Console.ReadKey(); } } } }
方法3:List 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ArrayRandFour { class Program { static void Main(string[] args) { List<int> listNum = new List<int>(); Random random = new Random(); //最小随机数 const int Min = 100; //最小随机数 const int Max = 999; //产生多少个随机数,这里是10个 const int Count = 10; for (int i = 0; i < 100; i++) { var num = random.Next(Min, Max); if (!listNum.Contains(num)) { //将产生的随机数num添加到listNum尾部 listNum.Add(num); //判断 达到设定的Count,跳出循环 if (listNum.Count == Count) { break; } } } //遍历 listNum foreach (int k in listNum) { Console.Write("{0} ", k); } Console.ReadKey(); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至624739273@qq.com举报,一经查实,本站将立刻删除。