[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
    }
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

时间: 2024-11-13 10:14:34

[C#]RandomHelper的相关文章

[C#] Helper 的封装 -- RandomHelper

介于经常在项目中需要用到随机数,特别写了一个帮助类,代码如下 using System; 2 3 namespace Wen.Helpers 4 { 5 /// <summary> 6 /// 随机数助手 7 /// </summary> 8 public sealed class RandomHelper 9 { 10 /// <summary> 11 /// 字符集合(去掉 0oO 这几个容易混淆的字符) 12 /// </summary> 13 pri

[C#] 简单的 Helper 封装 -- RandomHelper

1 using System; 2 3 namespace Wen.Helpers 4 { 5 /// <summary> 6 /// 随机数助手 7 /// </summary> 8 public sealed class RandomHelper 9 { 10 /// <summary> 11 /// 字符集合(去掉 0oO 这几个容易混淆的字符) 12 /// </summary> 13 private const string CharSet = &

(转) unity 在移动平台中,文件操作路径详解

http://www.unitymanual.com/thread-23491-1-1.html 今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好.更快的掌握,当然,如有不足的地方 欢迎指正!!! 相信大家在开发过程中,难免会保存一些文件在客户端进行本地化操作.如:配置文件,状态文件,Assetbundle文件等等... 最近总有人问我:1.保存了一个xml在客户端,能读取里面的数据,可是不能修改,甚至一修改就报错...2.我在电脑上操作

根据权重随机选取指定条数记录的简单算法实现(C#)

一.应用场景: 有时我们需要从一些列数据中根据权重随机选取指定条数记录出来,这里需要权重.随机,我们根据权重越大的,出现概率越大.例如广告系统:可根据客户支付金额大小来调控客户们的广告出现概率,客户支付金额越大,其广告出现频率越频繁,例如:加入有10条广告,然后每条广告都有一个权重,我们每次要根据权重选取5条广告出来进行显示.有了需求,我们就进行解决,本文章就是利用一种简单的算法来实现根据权重来随机选取. 二.简单算法的实现: 根据我们需求,上网找了不少资料,都没有找到一种比较适合的方案,就自己

再谈消息总线客户端的多线程实现

上次我谈了最近在写的一个基于RabbitMQ的消息总线的客户端在面对并发问题时的一些思考以及最终的实现方案.那是一种简单并且不容易产生并发问题的方案,如果你看过那篇文章,我曾在最终的实现方案之后给出了其利弊分析. 核心的问题是Client建立的跟RabbitMQ Server的connection是共享还是独占.对于这个问题可以举一个通俗一点的例子:如果你想要租间房子,每个人会有不同的想法.比如有人喜欢简单.安静的生活并且在意个人隐私,那么这个时候你最好的选择就是去租个单室套:里面什么都有,并且

VS自带的功能:性能和诊断

先看一眼代码: using System; using System.Collections.Generic; using XCode; using XCode.Configuration; using XCode.DataAccessLayer; namespace RandomInsert { internal class Program { private static int NeedCount = 10000; private static void Main(string[] arg

随机数生成器

public static class RandomHelper { /// <summary> /// 随机数生成器 /// </summary> public static Random Generator { get; } = new Random(SystemRandomInt()); /// <summary> /// 使用RNGCryptoServiceProvider生成真正随机的二进制数据 /// </summary> public stat

强烈鄙视奎宇工作室的抄袭行为

刚才看了一篇2014年国人开发的最热门的.NET开源项目 TOP 25,随手下载了排行第一的 奎宇工作室 / DotNetCodes C#,打开解决方案看着还不错,包含很多方面的公共操作类.再随手打开了一个RandomHelper,这代码看着眼熟,注释挺多,有我的风格啊.我把N年前写的代码找出来,比较了下,还真是我写的,那是我09年在博客园发过的一个叫CommonUtilities的公共操作类库中的代码.把这个类库看了一遍,基本有一半是从我这抄来的,就改了个命名空间,或者把一个类拆成几个类,还真

从零开始编写自己的C#框架(15)——Web层后端登陆功能

对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置为启动项 2.添加引用 3.添加WebManage文件夹与Login.aspx文件 4.添加登陆页面HTML代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx