国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

RandomId生成隨機字符串詳解實例

2020-01-24 02:59:49
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

/*
 * 名稱:RandomId
 * 功能:生成隨機ID
 * 作者:冰麟輕武
 * 日期:2012年1月31日 03:36:28
 * 版本:1.0
 * 最后更新:2012年1月31日 03:36:28
 */

using System;
using System.Text;

namespace blqw
{
    public sealed class RandomId : IFormattable
    {

        /// <summary> 1234567890qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM
        /// </summary>
        public const string ALLWORDS = "1234567890qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
        /// <summary> 2345678wertyuiopasdfghjkzxcvbnm23456780QWERTYUPASDFGHJKLZXCVBNM
        /// </summary>
        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

        /// <summary> 構造函數
        /// </summary>
        /// <param name="length">生成Id長度</param>
        /// <param name="dict">隨機字符字典,默認字典為0-9a-zA-Z</param>
        public RandomId(int length, string dict = ALLWORDS)
            : this(RandomId.ToFormat(length), dict)
        { }
        /// <summary> 構造函數
        /// </summary>
        /// <param name="format">生成Id格式</param>
        /// <param name="dict">隨機字符字典,默認字典為0-9a-zA-Z</param>
        public RandomId(string format, string dict = ALLWORDS)
        {
            _Dict = dict;
            _Format = format;
            _RMax = dict.Length;
        }

        /// <summary> 生成Id
        /// </summary>
        public string Create()
        {
            return string.Format(_Format, this);
        }
        /// <summary> 生成Id
        /// </summary>
        /// <param name="length">生成Id長度</param>
        /// <param name="dict">隨機字符字典,默認字典為0-9a-zA-Z</param>
        public static string Create(int length, string dict = ALLWORDS)
        {
            return new RandomId(length, dict).Create();
        }
        /// <summary> 生成Id
        /// </summary>
        /// <param name="format">生成Id格式</param>
        /// <param name="dict">隨機字符字典,默認字典為0-9a-zA-Z</param>
        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"));//使用指定字典生成特定格式的隨機字符


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林省| 鹤峰县| 邵东县| 奈曼旗| 柘荣县| 长垣县| 大同市| 双流县| 达日县| 武乡县| 吉安市| 印江| 庄河市| 万载县| 平昌县| 平利县| 乡城县| 东阳市| 蒲城县| 开平市| 海伦市| 镇雄县| 高青县| 凤庆县| 旬阳县| 盐山县| 博兴县| 沅陵县| 碌曲县| 新巴尔虎右旗| 汽车| 平阳县| 文水县| 邢台县| 甘谷县| 哈尔滨市| 揭阳市| 玛沁县| 拉萨市| 兴隆县| 大渡口区|