How to generate ALPHANUMERIC Coupon Code in C#?
我有一个生成Coupon Code的方法。有人能帮助/建议生成ALPHANUMERIC CODE?
方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public string CouponGenerator (int length )
{
var sb = new StringBuilder ();
for (var i = 0; i < length ; i ++)
{
var ch = Convert .ToChar(Convert .ToInt32(Math .Floor(26 * _random .NextDouble() + 65)));
sb .Append(ch );
}
return sb .ToString();
}
private static readonly Random _random = new Random (); |
例子:
当长度设置为8时,UZWKXQML
但它需要类似于U6WK8Q2L的东西,即字母数字代码。
您可以更改Coupan代码的长度。
1 2 3 4 5 6
| var chars ="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random ();
var result = new string(
Enumerable .Repeat(chars, 8)
.Select(s => s [random .Next(s .Length)])
.ToArray()); |
- 谢谢@kumod singh,它工作了..:)
- 欢迎,谢哈!!!!
只需洗牌阿尔法下注的顺序,并采取您需要的字符数。
1 2 3 4 5 6
| public string CouponGenerator (int length, char[] alphaNumSeed )
{
var coupon = alphaNumSeed .OrderBy(o => Guid .NewGuid()).Take(length );
return new string(coupon .ToArray());
} |
- 1)虽然目前执行的NewGuid是随机的,但不能保证是随机的。2)为什么要防止重复字符?
- 洗牌字符数组只是一件棘手的事情。正如我所知,guid使用伪随机算法,当我们谈论随机序列时,这实际上是非常好的。