Пример #1
0
        public static string GetRandomString(RandomStringType randomType, int stringLength, int seed)
        {
            string[] sCaptions = new string[] { "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[] sNumbers  = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };

            Random rnd     = new Random(seed);
            string sResult = string.Empty;

            for (int i = 0; i < stringLength; i++)
            {
                if (randomType == RandomStringType.OnlyNumber)
                {
                    sResult += sNumbers[rnd.Next(0, 9)];
                }
                else if (randomType == RandomStringType.OnlyChar)
                {
                    sResult += sCaptions[rnd.Next(0, 25)];
                }
                else if (randomType == RandomStringType.NumberAndChar)
                {
                    sResult += sNumbers[rnd.Next(0, 9)] + sCaptions[rnd.Next(0, 25)];
                    sResult  = sResult.Remove(rnd.Next(0, sResult.Length - 1), 1);
                }
            }

            return(sResult);
        }
Пример #2
0
        public static string GetRandomString(RandomStringType randomType, int stringLength,int seed)
        {
            string[] sCaptions = new string[] { "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[] sNumbers = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };

            Random rnd = new Random(seed);
            string sResult = string.Empty;

            for (int i = 0; i < stringLength; i++)
            {
                if (randomType == RandomStringType.OnlyNumber)
                {
                    sResult += sNumbers[rnd.Next(0, 9)];
                }
                else if (randomType == RandomStringType.OnlyChar)
                {
                    sResult += sCaptions[rnd.Next(0, 25)];
                }
                else if (randomType == RandomStringType.NumberAndChar)
                {
                    sResult += sNumbers[rnd.Next(0, 9)] + sCaptions[rnd.Next(0, 25)];
                    sResult = sResult.Remove(rnd.Next(0, sResult.Length - 1), 1);
                }
            }

            return sResult;
        }
        private static string RandomString(int size, RandomStringType type)
        {
            string chars;

            switch (type)
            {
            case RandomStringType.Alpha:
                chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                break;

            case RandomStringType.Numeric:
                chars = "0123456789";
                break;

            case RandomStringType.AlphaNumeric:
            default:
                chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                break;
            }

            char[] buffer = new char[size];

            for (int i = 0; i < size; i++)
            {
                buffer[i] = chars[_rng.Next(chars.Length)];
            }
            return(new string(buffer));
        }
Пример #4
0
        public static string Random(int count, RandomStringType type = RandomStringType.Any)
        {
            if (count < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(count));
            }
            if (count == 0)
            {
                return(string.Empty);
            }

            IList <Func <char> > types = __randomStringType.GetOrAdd(type, t =>
            {
                List <Func <char> > list = new List <Func <char> >();
                if (t.FastHasFlag(RandomStringType.SmallLetters))
                {
                    list.Add(RandomSmallLetter);
                }
                if (t.FastHasFlag(RandomStringType.CapitalLetters))
                {
                    list.Add(RandomCapitalLetter);
                }
                if (t.FastHasFlag(RandomStringType.Numbers))
                {
                    list.Add(RandomNumber);
                }
                if (!t.FastHasFlag(RandomStringType.SpecialCharacters))
                {
                    return(list);
                }

                if (t.FastHasFlag(RandomStringType.SafeCharacters))
                {
                    list.Add(RandomSafeSpecialCharacter);
                }
                else
                {
                    list.Add(RandomSpecialCharacter);
                }

                return(list);
            });

            if (types.Count == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(type));
            }

            StringBuilder sb = new StringBuilder(count);

            for (int i = 0; i < count; i++)
            {
                sb.Append(types.PickRandom());
            }

            return(sb.ToString());
        }
Пример #5
0
        /// <summary>生成随机字符串
        /// </summary>
        public static string GetRandomStr(int length, RandomStringType randomStringType = RandomStringType.Number)
        {
            var rd    = new Random(GetRandomSeed());
            var sb    = new StringBuilder();
            var range = RandomRanges[randomStringType];

            for (var i = 0; i < length; i++)
            {
                //生成随机的当前索引
                var index = rd.Next(range.Item1, range.Item2);
                sb.Append(RandomArray[index]);
            }
            return(sb.ToString());
        }
Пример #6
0
        public static string RandomString(RandomStringType type, int length)
        {
            string chars = "";

            switch (type)
            {
            case RandomStringType.AlphaNumeric:
                chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
                break;

            case RandomStringType.Numeric:
                chars = "0123456789";
                break;

            case RandomStringType.Alpha:
                chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
                break;
            }

            return(new string(Enumerable.Repeat(chars, length)
                              .Select(s => s[random.Next(s.Length)]).ToArray()));
        }
Пример #7
0
        public static string NextString(this Random random, int minLength, int maxLength, RandomStringType type = RandomStringType.All)
        {
            var valueSpace = "";

            if (type.HasFlag(RandomStringType.AlphaLower))
            {
                valueSpace += ALPHA;
            }
            if (type.HasFlag(RandomStringType.AlphaUpper))
            {
                valueSpace += ALPHA.ToUpper();
            }
            if (type.HasFlag(RandomStringType.Numeric))
            {
                valueSpace += NUMERIC;
            }

            var value  = "";
            var length = minLength == maxLength ? minLength : random.Next(minLength, maxLength);

            for (var i = 0; i < length; i++)
            {
                var index = random.Next(valueSpace.Length);
                value += valueSpace[index];
            }

            return(value);
        }
Пример #8
0
 public static string NextString(this Random random, int length, RandomStringType type = RandomStringType.All)
 {
     return(NextString(random, length, length, type));
 }