DotNet生成随机数的一些方法
2016-11-27 19:46
232 查看
在项目开发中,一般都会使用到“随机数”,但是在DotNet中的随机数并非真正的随机数,可在一些情况下生成重复的数字,现在总结一下在项目中生成随机数的方法。1.随机布尔值:[code=c#;toolbar:false"> /// <summary>
/// 随机布尔值
/// </summary>
/// <param name="random"></param>
/// <returns>随机布尔值</returns>
public static bool NextBoolean(this Random random)
{
if (random == null)
{
throw new ArgumentNullException("random");
}
return random.NextDouble() > 0.5;
} /// <summary>
/// 随机数填充的指定长度的数组
/// </summary>
/// <param name="random"></param>
/// <param name="length">数组长度</param>
/// <returns>随机数填充的指定长度的数组</returns>
public static byte[] NextBytes(this Random random, int length)
{
if (length < 0)
{
throw new ArgumentOutOfRangeException("length");
}
var data = new byte[length];
random.NextBytes(data);
return data;
}/// <summary>
/// 指定时间段内的随机时间值
/// </summary>
/// <param name="random"></param>
/// <param name="minValue">时间范围的最小值</param>
/// <param name="maxValue">时间范围的最大值</param>
/// <returns>指定时间段内的随机时间值</returns>
public static DateTime NextDateTime(this Random random, DateTime minValue, DateTime maxValue)
{
var ticks = minValue.Ticks + (long)((maxValue.Ticks - minValue.Ticks) * random.NextDouble());
return new DateTime(ticks);
} /// <summary>
/// 获取指定的长度的随机数字字符串
/// </summary>
/// <param name="random"></param>
/// <param name="length">要获取随机数长度</param>
/// <returns>指定长度的随机数字符串</returns>
public static string GetRandomNumberString(this Random random, int length)
{
if (length < 0)
{
throw new ArgumentOutOfRangeException("length");
}
char[] pattern = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
var result = "";
var n = pattern.Length;
for (var i = 0; i < length; i++)
{
var rnd = random.Next(0, n);
result += pattern[rnd];
}
return result;
}
/// 随机布尔值
/// </summary>
/// <param name="random"></param>
/// <returns>随机布尔值</returns>
public static bool NextBoolean(this Random random)
{
if (random == null)
{
throw new ArgumentNullException("random");
}
return random.NextDouble() > 0.5;
} /// <summary>
/// 随机数填充的指定长度的数组
/// </summary>
/// <param name="random"></param>
/// <param name="length">数组长度</param>
/// <returns>随机数填充的指定长度的数组</returns>
public static byte[] NextBytes(this Random random, int length)
{
if (length < 0)
{
throw new ArgumentOutOfRangeException("length");
}
var data = new byte[length];
random.NextBytes(data);
return data;
}/// <summary>
/// 指定时间段内的随机时间值
/// </summary>
/// <param name="random"></param>
/// <param name="minValue">时间范围的最小值</param>
/// <param name="maxValue">时间范围的最大值</param>
/// <returns>指定时间段内的随机时间值</returns>
public static DateTime NextDateTime(this Random random, DateTime minValue, DateTime maxValue)
{
var ticks = minValue.Ticks + (long)((maxValue.Ticks - minValue.Ticks) * random.NextDouble());
return new DateTime(ticks);
} /// <summary>
/// 获取指定的长度的随机数字字符串
/// </summary>
/// <param name="random"></param>
/// <param name="length">要获取随机数长度</param>
/// <returns>指定长度的随机数字符串</returns>
public static string GetRandomNumberString(this Random random, int length)
{
if (length < 0)
{
throw new ArgumentOutOfRangeException("length");
}
char[] pattern = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
var result = "";
var n = pattern.Length;
for (var i = 0; i < length; i++)
{
var rnd = random.Next(0, n);
result += pattern[rnd];
}
return result;
}
相关文章推荐
- DotNet生成随机数的一些方法
- DotNet生成随机数的一些方法
- Symbian生成随机数的方法
- ORACLE里取随机数的方法,随机取出一些符合条件的EMAIL或者手机号码用户
- 生成随机数的三种方法
- windows下随机数的生成方法
- .NET生成随机数方法
- java中生成无重复随机数的2种方法
- spec文件中写上一些脚本,使生成的rpm包在安装前删除系统中指定文件的方法
- spec文件中写上一些脚本,使生成的rpm包在安装前删除系统中指定文件的方法
- 关于随机数生成的一些代码(C/C++)
- 表里有一些默认的数据 用什么方法生成一条一条的insert into语句
- 类库------对一些字符串进行操作的类1.判断输入是否数字2.截取字符串函数3.过滤输入信息4.生成随机数5.生成验证码图片6.获取汉字第一个拼音7.半角转全角8.全角转半角
- java生成无重复随机数的2种方法
- 两种方法生成安全的随机数(置顶)
- 一些网上密码学资源(6)-随机数生成
- java生成无重复随机数的2种方法
- 关键字加亮--JS方法(现在很多文章生成html那想在文章里把某些字,做一些标释)
- C#中生成随机数的方法和语句
- 收集了一些静态生成页面的方法,自己也写了一下