DotNet生成随机数的一些方法
在项目开发中,一般都会使用到“随机数”,但是在DotNet中的随机数并非真正的随机数,可在一些情况下生成重复的数字,现在总结一下在项目中生成随机数的方法。
1.随机布尔值:
///<summary>///随机布尔值///</summary>///<paramname="random"></param>///<returns>随机布尔值</returns>publicstaticboolNextBoolean(thisRandomrandom){if(random==null){thrownewArgumentNullException("random");}returnrandom.NextDouble()>0.5;}
2.指定枚举类型的随机枚举值:
///<summary>///指定枚举类型的随机枚举值///</summary>///<paramname="random"></param>///<returns>指定枚举类型的随机枚举值</returns>publicstaticTNextEnum<T>(thisRandomrandom)whereT:struct{vartype=typeof(T);if(!type.IsEnum){thrownewInvalidOperationException();}vararray=System.Enum.GetValues(type);varindex=random.Next(array.GetLowerBound(0),array.GetUpperBound(0)+1);return(T)array.GetValue(index);}
3.随机数填充的指定长度的数组:
///<summary>///随机数填充的指定长度的数组///</summary>///<paramname="random"></param>///<paramname="length">数组长度</param>///<returns>随机数填充的指定长度的数组</returns>publicstaticbyte[]NextBytes(thisRandomrandom,intlength){if(length<0){thrownewArgumentOutOfRangeException("length");}vardata=newbyte[length];random.NextBytes(data);returndata;}
4.数组中的随机元素:
///<summary>///数组中的随机元素///</summary>///<typeparamname="T">元素类型</typeparam>///<paramname="random"></param>///<paramname="items">元素数组</param>///<returns>元素数组中的某个随机项</returns>publicstaticTNextItem<T>(thisRandomrandom,T[]items){returnitems[random.Next(0,items.Length)];}
5.指定时间段内的随机时间值:
///<summary>///指定时间段内的随机时间值///</summary>///<paramname="random"></param>///<paramname="minValue">时间范围的最小值</param>///<paramname="maxValue">时间范围的最大值</param>///<returns>指定时间段内的随机时间值</returns>publicstaticDateTimeNextDateTime(thisRandomrandom,DateTimeminValue,DateTimemaxValue){varticks=minValue.Ticks+(long)((maxValue.Ticks-minValue.Ticks)*random.NextDouble());returnnewDateTime(ticks);}
6.随机时间值:
///<summary>///随机时间值///</summary>///<paramname="random"></param>///<returns>随机时间值</returns>publicstaticDateTimeNextDateTime(thisRandomrandom){returnNextDateTime(random,DateTime.MinValue,DateTime.MaxValue);}
7.获取指定的长度的随机数字字符串:
///<summary>///获取指定的长度的随机数字字符串///</summary>///<paramname="random"></param>///<paramname="length">要获取随机数长度</param>///<returns>指定长度的随机数字符串</returns>publicstaticstringGetRandomNumberString(thisRandomrandom,intlength){if(length<0){thrownewArgumentOutOfRangeException("length");}char[]pattern={'0','1','2','3','4','5','6','7','8','9'};varresult="";varn=pattern.Length;for(vari=0;i<length;i++){varrnd=random.Next(0,n);result+=pattern[rnd];}returnresult;}
8.获取指定的长度的随机字母字符串:
///<summary>///获取指定的长度的随机字母字符串///</summary>///<paramname="random"></param>///<paramname="length">要获取随机数长度</param>///<returns>指定长度的随机字母组成字符串</returns>publicstaticstringGetRandomLetterString(thisRandomrandom,intlength){if(length<0){thrownewArgumentOutOfRangeException("length");}char[]pattern={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};varresult="";varn=pattern.Length;for(vari=0;i<length;i++){varrnd=random.Next(0,n);result+=pattern[rnd];}returnresult;}
9.获取指定的长度的随机字母和数字字符串:
///<summary>///获取指定的长度的随机字母和数字字符串///</summary>///<paramname="random"></param>///<paramname="length">要获取随机数长度</param>///<returns>指定长度的随机字母和数字组成字符串</returns>publicstaticstringGetRandomLetterAndNumberString(thisRandomrandom,intlength){if(length<0){thrownewArgumentOutOfRangeException("length");}char[]pattern={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};varresult="";varn=pattern.Length;for(vari=0;i<length;i++){varrnd=random.Next(0,n);result+=pattern[rnd];}returnresult;}
生成随机数的方式较多,可根据具体的要求来生成对应的随机数。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。