如何在 C# 中生成 ALPHANUMERIC 优惠券代码? [复制]
Posted
技术标签:
【中文标题】如何在 C# 中生成 ALPHANUMERIC 优惠券代码? [复制]【英文标题】:How to generate ALPHANUMERIC Coupon Code in C#? [duplicate] 【发布时间】:2014-12-24 17:05:29 【问题描述】:我有一个生成Coupon Code
的方法。谁能帮助/建议生成ALPHANUMERIC CODE
?
方法如下:
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 时的 UZWKXXML
但它需要U6WK8Q2L
之类的东西,即字母数字代码。
【问题讨论】:
见How can I generate random alphanumeric strings in C#? 【参考方案1】:您可以更改Coupan代码的长度。
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 它有效..! :)【参考方案2】:只需随机播放 alpha 赌注的顺序并获取您需要的字符数。
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 使用伪随机算法,当我们谈论随机序列时,这实际上是相当不错的以上是关于如何在 C# 中生成 ALPHANUMERIC 优惠券代码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章