Как создать ALPHANUMERIC код купона в C#?
У меня есть метод, который генерирует 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();
Пример:
UZWKXQML, когда длина установлена на 8
Но для этого нужно что-то вроде U6WK8Q2L
т.е. буквенно-цифровой код.
2 ответа
Решение
Вы можете изменить длину кода Купана.
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
var result = new string(
Enumerable.Repeat(chars, 8)
.Select(s => s[random.Next(s.Length)])
.ToArray());
Просто перетасуйте последовательность альфа-ставки и возьмите необходимое количество символов.
public string CouponGenerator(int length, char[] alphaNumSeed)
{
var coupon = alphaNumSeed.OrderBy(o => Guid.NewGuid()).Take(length);
return new string(coupon.ToArray());
}