栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

RandomId生成随机字符串详解实例

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RandomId生成随机字符串详解实例

复制代码 代码如下:

using System;
using System.Text;

namespace blqw
{
    public sealed class RandomId : IFormattable
    {

        ///

1234567890qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM
        ///

        public const string ALLWORDS = "1234567890qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
        /// 2345678wertyuiopasdfghjkzxcvbnm23456780QWERTYUPASDFGHJKLZXCVBNM
        ///

        public const string SIMPLEWORDS = "2345678wertyuipasdfghjkzxcvbnm2345678WERTYUPASDFGHJKLZXCVBNM";

        #region 私有对象
        const string ONE = "{0}";
        static RandomId _Rid = new RandomId(0);
        readonly static Random _Rand = new Random();
        static string ToFormat(int length)
        {
            StringBuilder sb = new StringBuilder(length * 3);
            for (int i = 0; i < length; i++)
            {
                sb.Append(ONE);
            }
            return sb.ToString();
        }

        readonly string _Dict;
        readonly int _RMax;
        readonly string _Format;
        #endregion

        ///

构造函数
        ///

        /// 生成Id长度
        /// 随机字符字典,默认字典为0-9a-zA-Z
        public RandomId(int length, string dict = ALLWORDS)
            : this(RandomId.ToFormat(length), dict)
        { }
        /// 构造函数
        ///

        /// 生成Id格式
        /// 随机字符字典,默认字典为0-9a-zA-Z
        public RandomId(string format, string dict = ALLWORDS)
        {
            _Dict = dict;
            _Format = format;
            _RMax = dict.Length;
        }

        ///

生成Id
        ///

        public string Create()
        {
            return string.Format(_Format, this);
        }
        /// 生成Id
        ///

        /// 生成Id长度
        /// 随机字符字典,默认字典为0-9a-zA-Z
        public static string Create(int length, string dict = ALLWORDS)
        {
            return new RandomId(length, dict).Create();
        }
        /// 生成Id
        ///

        /// 生成Id格式
        /// 随机字符字典,默认字典为0-9a-zA-Z
        public static string Create(string format, string dict = ALLWORDS)
        {
            return new RandomId(format, dict).Create();
        }

        #region IFormattable 成员

        string IFormattable.ToString(string format, IFormatProvider formatProvider)
        {
            return _Dict[_Rand.Next(0, _RMax)].ToString();
        }

        #endregion

       
    }
}

复制代码 代码如下:
Console.WriteLine(RandomId.Create(4));//使用默认字典生成4位随机字符串,默认字典中不包含l,1,O,0,q,9等容易混淆字符
Console.WriteLine(RandomId.Create(4, RandomId.ALLWORDS));//使用完整字典(0-9a-zA-Z),生成4位随机字符
Console.WriteLine(RandomId.Create(10, "多少级开发和贷款撒了花费大量时间好快理发店撒娇哦就开放了的撒酒阿克里福德就是卡看了就分开的世界里分开家里的事"));//使用指定中文字典,生成4位随机字符
Console.WriteLine(RandomId.Create("SN:{0}{0}{0}{0}-{0}{0}{0}-{0}{0}{0}.{0}{0}", "123456abcdef"));//使用指定字典生成特定格式的随机字符


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/126853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号