【问题标题】:How to generate ALPHANUMERIC Coupon Code in C#? [duplicate]如何在 C# 中生成 ALPHANUMERIC 优惠券代码? [复制]
【发布时间】: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 之类的东西,即字母数字代码。

【问题讨论】:

标签: c# random alphanumeric


【解决方案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 使用伪随机算法,当我们谈论随机序列时,这实际上是相当不错的
猜你喜欢
  • 2013-04-22
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多