Exemple #1
0
        /// <summary>
        /// 生成大小写字母和数字组合的字符串
        /// <para>默认随机为大小写和数字</para>
        /// </summary>
        /// <param name="len">生成长度</param>
        /// <param name="type">随机代码类型</param>
        /// <param name="seed">随机种子</param>
        /// <returns>生成的字符串</returns>
        public static string Generate(int len, RandomCodeType type = RandomCodeType.HighLowLetterAndNumber, int?seed = null)
        {
            StringBuilder newRandom = null;
            var           rd        = random;

            if (seed != null)
            {
                rd = new Random((int)seed);
            }
            switch (type)
            {
            case RandomCodeType.HighLowLetterAndNumberAndSymbol:
                newRandom = new StringBuilder(charHighLowLetterAndNumberAndSymbol.Length);
                for (int i = 0, arrlen = charHighLowLetterAndNumberAndSymbol.Length; i < len; i++)
                {
                    newRandom.Append(charHighLowLetterAndNumberAndSymbol[rd.Next(arrlen)]);
                }
                break;

            case RandomCodeType.HighLowLetterAndNumber:
                newRandom = new StringBuilder(charHighLowLetterAndNumber.Length);
                for (int i = 0, arrlen = charHighLowLetterAndNumber.Length; i < len; i++)
                {
                    newRandom.Append(charHighLowLetterAndNumber[rd.Next(arrlen)]);
                }
                break;

            case RandomCodeType.HighLetterAndNumber:
                newRandom = new StringBuilder(charHighLetterAndNumber.Length);
                for (int i = 0, arrlen = charHighLetterAndNumber.Length; i < len; i++)
                {
                    newRandom.Append(charHighLetterAndNumber[rd.Next(arrlen)]);
                }
                break;

            case RandomCodeType.HighLetter:
                newRandom = new StringBuilder(charHighLetter.Length);
                for (int i = 0, arrlen = charHighLetter.Length; i < len; i++)
                {
                    newRandom.Append(charHighLetter[rd.Next(arrlen)]);
                }
                break;

            case RandomCodeType.Number:
                newRandom = new StringBuilder(charNumber.Length);
                for (int i = 0, arrlen = charNumber.Length; i < len; i++)
                {
                    newRandom.Append(charNumber[rd.Next(arrlen)]);
                }
                break;
            }
            return(newRandom.ToString());
        }
Exemple #2
0
 public RandomGeneratorSetting(RandomCodeType type, short length)
 {
     this.Type   = type;
     this.Length = length;
 }