我有一些字符:
- chars = "$%#@!*abcdefghijklmnopqrstuvwxyz1234567890?;:ABCDEFGHIJKLMNOPQRSTUVWXYZ^&".tocharArray();
我发现一个可能有用的代码:
- static Random random = new Random();
- public static char GetLetter()
- {
- // This method returns a random lowercase letter
- // ... Between 'a' and 'z' inclusize.
- int num = random.Next(0,26); // Zero to 25
- char let = (char)('a' + num);
- return let;
- }
解决方法
你几乎在那里 – 你想从一个字符串返回一个随机元素,所以你只需要在字符串的长度范围内生成一个随机数:
- public static char GetRandomCharacter(string text,Random rng)
- {
- int index = rng.Next(text.Length);
- return text[index];
- }
我建议不要使用类型为Random的静态变量,而不用任何锁定,顺便说一下 – Random不是线程安全的.有关更多详细信息(和解决方法),请参阅我的article on random numbers.