/// <summary>
/// 类说明:RandHelper类,用来实现取随机
/// 编码日期:2015-12-29
/// 编 码 人:里程碑
/// 修改日期:2015-12-29
/// 版 本 号:1.0
/// </summary>
using System;
using System.Collections.Generic;
using System.Text;

namespace DotNet.Utilities
{
    /// <summary>
    /// 随机操作帮助类
    /// </summary>
    public class RandHelper
    {
        private Random _random;
        public RandHelper()
        {
            //为随机数对象赋值
            this._random = new Random();
        }
        /// <summary>
        /// 随机范围数字
        /// </summary>
        /// <param name="min">最小</param>
        /// <param name="max">最大</param>
        /// <returns></returns>
        public string RandNext(int min, int max)
        {
            return _random.Next(min, max).ToString();
        }
        /// <summary>
        /// 返回一个介于0.0与1.0之间的随机数
        /// </summary>
        /// <returns></returns>
        public string RandNextDouble()
        {
            return _random.NextDouble().ToString();
        }
        /// <summary>
        /// 随机数字
        /// </summary>
        /// <param name="len">长度</param>
        /// <returns></returns>
        public string RandNum(int len)
        {
            string str = string.Empty;
            ; i < len; i++)
            {
                str += _random.Next(, );
            }
            return str;
        }
        /// <summary>
        /// 随机英文
        /// </summary>
        /// <param name="Length">长度</param>
        /// <param name="type">类型,0=小写,1=大写,2=混合,默认小写</param>
        /// <returns></returns>
        )
        {
            string[] s1 = { "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", "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" };
            //定义一个新字符串
            string NewText = string.Empty;
            ; m < Length; m++)
            {
                NewText = NewText + s1[_random.Next(, s1.Length)];
            }
            )
            {
                NewText = NewText.ToLower();
            }
            )
            {
                NewText = NewText.ToUpper();
            }
            return NewText;
        }
        /// <summary>
        /// 生成随机姓氏
        /// </summary>
        /// <returns></returns>
        public string RandName()
        {
            /// <summary>
            /// 百家姓
            /// </summary>
            string firstName = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫柯房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊于惠甄曲家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭历戎祖武符刘景詹束龙叶幸司韶郜黎蓟溥印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阳郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东欧殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逮盍益桓公";
            , firstName.Length - ), ));
        }
        public string RandChinese(int strlength)
        {
            //定义一个字符串数组储存汉字编码的组成元素
            ] { ", "a", "b", "c", "d", "e", "f" };

            Random rnd = new Random();

            //定义一个object数组用来
            object[] bytes = new object[strlength];

            /*每循环一次产生一个含两个元素的十六进制字节数组,并将其放入bject数组中
           每个汉字有四个区位码组成
           区位码第1位和区位码第2位作为字节数组第一个元素
           区位码第3位和区位码第4位作为字节数组第二个元素
           */
            ; i < strlength; i++)
            {
                //区位码第1位
                , );
                string str_r1 = rBase[r1].Trim();

                //区位码第2位
                rnd = new Random(r1 * unchecked((int)DateTime.Now.Ticks) + i);//更换随机数发生器的 

                //种子避免产生重复值
                int r2;
                )
                {
                    r2 = rnd.Next(, );
                }
                else
                {
                    r2 = rnd.Next(, );
                }
                string str_r2 = rBase[r2].Trim();

                //区位码第3位
                rnd = new Random(r2 * unchecked((int)DateTime.Now.Ticks) + i);
                , );
                string str_r3 = rBase[r3].Trim();

                //区位码第4位
                rnd = new Random(r3 * unchecked((int)DateTime.Now.Ticks) + i);
                int r4;
                )
                {
                    r4 = rnd.Next(, );
                }
                )
                {
                    r4 = rnd.Next(, );
                }
                else
                {
                    r4 = rnd.Next(, );
                }
                string str_r4 = rBase[r4].Trim();

                //定义两个字节变量存储产生的随机汉字区位码
                );
                );
                //将两个字节变量存储在字节数组中
                byte[] str_r = new byte[] { byte1, byte2 };

                //将产生的一个汉字的字节数组放入object数组中
                bytes.SetValue(str_r, i);

            }
            //获取GB2312编码页(表)
            Encoding gb = Encoding.GetEncoding("gb2312");
            string str1 = string.Empty;
            ; i < bytes.Length; i++)
            {
                str1 += gb.GetString((byte[])Convert.ChangeType(bytes[i], typeof(byte[])));
            }

            return str1;

        }
    }
}

RandHelper的更多相关文章

  1. C# 常用方法——生成验证码

    其他常用方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 原文链接:https://www.cnblogs.com/morang/p/405 ...

随机推荐

  1. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. 在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口

    在我很早的WInform随笔<WinForm界面开发之"SplashScreen控件">有介绍如何使用闪屏的处理操作,不过那种是普通WInform和DevExpress ...

  3. h1、h2、h3标签及strong标签对页面seo的影响

    今天和大家来聊下h1,h2,h3,strong几个标签,在网页中的使用对页面seo的影响,也阐述了个人的一些想法. 首先简要讲下H标签及strong标签的含义:<h1>.<h2> ...

  4. CSS3之盒子模型

    display:box 使子元素成行排列如果父级宽度小于子级盒子 不会把超出部分挤出下面 而是直接超出 -box-orient:vertical 使盒子垂直显示  默认水平显示 -box-direct ...

  5. 基于React,Redux以及wilddog的聊天室简单实现

    本文主要是使用ReactJs和Redux来实现一个聊天功能的页面,页面极其简单.使用React时间不长,还是个noob,有不对之处欢迎大家吐槽指正. 还要指出这里没有使用到websocket等技术来实 ...

  6. SharePoint文档库文件夹特殊字符转义

    当我们在SharePoint网站文档库中新建文件夹时包含了~ " # % & * : < > ? / \ { | }字符时(一共15个), 或者以.开头或者结束,或者包含 ...

  7. 如何在SharePoint 当中使用纯JSOM上传任意二进制文件(小于2MB)

    在微软的官方网站上有关于如何在SharePoint当中使用JS创建一个简单的文本文件的例子,经过我的思考我觉得结合Html5特性的浏览器,是完全可以通过JS来读取到文件的内容的(这一部分的内容请大家自 ...

  8. 有主线程发送message给子线程

    通常我们在处理耗时任务时候都会通过新建线程来处理,当任务处理完后通过Handler将结果发送回主线程.比如下面示例: package com.example.testlistener; import ...

  9. 分享一个ReactiveCocoa的很好的教程(快速上手)

    这是我看到的比较全而且讲的很好的文章 https://www.raywenderlich.com/62796/reactivecocoa-tutorial-pt1 https://www.raywen ...

  10. 压缩和解压文件:tar gzip bzip2 compress(转)

    tar[必要参数][选择参数][文件] 压缩:tar -czvf filename.tar.gz targetfile解压:tar -zxvf filename.tar.gz参数说明: -c 建立新的 ...