我正在研究随机生成代码的要求(如随机数)。代码应该是字母数字,但应该只允许(A-Z0-9)。用户可以指定代码中的字符数。代码可以是4-9个字符长,具体取决于用户输入。
代码示例为'AG43','XFR4A5UU0'。
编辑: - 我正在寻找解决此问题的最佳方法。我正在考虑生成11到99范围内的2位数随机数。如果数字介于65和15之间。 90(A-z的ascii),我将使用ascii,否则我将生成的数字附加到我的代码字符串。
请指教。
答案 0 :(得分:9)
var number_of_chars = 4;
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
var result = new string(
Enumerable.Repeat(chars, number_of_chars)
.Select(s => s[random.Next(s.Length)])
.ToArray());
答案 1 :(得分:2)
public string GetRandomString(int length)
{
var newBuffer = new byte[length];
if (length <= 0)
return null;
// This was used for a password generator... change this how every needed
var charSet = ("ABCDEFGHJKLMNPQRSTUVWXYZ" +
"abcdefghijkmnprstuvxyz" +
"23456789").ToCharArray();
using (var rng = RandomNumberGenerator.Create())
{
rng.GetBytes(newBuffer);
var newChars = newBuffer.Select(b => charSet[b % charSet.Length]).ToArray();
return new string(newChars);
}
}