
·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> [C#]RandomHelper
关键代码:
using System;
using System.Text;
namespace YanZhiwei.DotNet2.Utilities.Common
{
/// <summary>
///Random的帮助类
/// </summary>
public static class RandomHelper
{
#region 生成设置范围内的Double的随机数
/// <summary>
/// 生成设置范围内的Double的随机数
///<para>eg:RandomHelper.NextDouble(1.5, 1.7);</para>
/// </summary>
/// <param name="miniDouble">生成随机数的最大值</param>
/// <param name="maxiDouble">生成随机数的最小值</param>
/// <returns>Double的随机数</returns>
public static double NextDouble(double miniDouble, double maxiDouble)
{
Random _random = new Random((int)(DateTime.Now.Ticks));
return _random.NextDouble() * (maxiDouble - miniDouble) + miniDouble;
}
#endregion
#region 生成随机字符串
/// <summary>
/// 生成随机字符串
/// <para>RandomHelper.NetxtString(4, false);</para>
/// </summary>
/// <param name="size">字符串长度</param>
/// <param name="lowerCase">字符串是小写</param>
/// <returns>随机字符串</returns>
public static string NetxtString(int size, bool lowerCase)
{
Random _random = new Random((int)(DateTime.Now.Ticks));
StringBuilder _builder = new StringBuilder(size);
int _startChar = lowerCase ? 97 : 65;//65 = A / 97 = a
for (int i = 0; i < size; i++)
_builder.Append((char)(26 * _random.NextDouble() + _startChar));
return _builder.ToString();
}
#endregion
#region 0~9 A~Z字符串
/// <summary>
/// 0~9 A~Z字符串
/// </summary>
public static string RandomString_09AZ = "0123456789ABCDEFGHIJKMLNOPQRSTUVWXYZ";
#endregion
#region 依据指定字符串来生成随机字符串
/// <summary>
/// 依据指定字符串来生成随机字符串
/// <para>RandomHelper.NetxtString(RandomHelper.RandomString_09AZ, 4, false);</para>
/// </summary>
/// <param name="randomString">指定字符串</param>
/// <param name="size">字符串长度</param>
/// <param name="lowerCase">字符串是小写</param>
/// <returns>随机字符串</returns>
public static string NetxtString(string randomString, int size, bool lowerCase)
{
string _nextString = string.Empty;
Random _random = new Random((int)(DateTime.Now.Ticks));
if (!string.IsNullOrEmpty(randomString))
{
StringBuilder _builder = new StringBuilder(size);
int _maxCount = randomString.Length - 1;
for (int i = 0; i < size; i++)
{
int _number = _random.Next(0, _maxCount);
_builder.Append(randomString[_number]);
}
_nextString = _builder.ToString();
}
return lowerCase ? _nextString.ToLower() : _nextString.ToUpper();
}
#endregion
#region 生成随机时间
/// <summary>
/// 生成随机时间
/// <para>RandomHelper.NextDateTime();</para>
/// </summary>
/// <returns>随机时间</returns>
public static DateTime NextDateTime()
{
Random _random = new Random((int)(DateTime.Now.Ticks));
int _hour = _random.Next(2, 5);
int _minute = _random.Next(0, 60);
int _second = _random.Next(0, 60);
string _dateTimeString = string.Format("{0} {1}:{2}:{3}", DateTime.Now.ToString("yyyy-MM-dd"), _hour, _minute, _second);
DateTime _nextTime = Convert.ToDateTime(_dateTimeString);
return _nextTime;
}
#endregion
#region 生成随机MAC地址
/// <summary>
/// 生成随机MAC地址
/// <para>RandomHelper.NextMacAddress();</para>
/// </summary>
/// <returns>新的MAC地址</returns>
public static string NextMacAddress()
{
int _minValue = 0, _maxValue = 16;
Random _random = new Random((int)(DateTime.Now.Ticks));
string _newMacAddress = string.Format("{0}{1}:{2}{3}:{4}{5}:{6}{7}:{8}{9}:{10}{11}",
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x"),
_random.Next(_minValue, _maxValue).ToString("x")
).ToUpper();
return _newMacAddress;
}
#endregion
}
}