我有一个从这篇文章中获得的功能,效果很好:
private string GenerateTransactionCode()
{
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var random = new Random();
var result = new string(
Enumerable.Repeat(chars, 8)
.Select(s => s[random.Next(s.Length)])
.ToArray());
return result;
}
我想对其进行修改,以便它不是随机的,而是根据DateTime.UtcNow.Ticks
. 这样就不会重复了。我想可能需要根据毫秒的长度增加生成的 TransactionCode 中的字符?我希望生成的 TransactionCode 的长度保持不变。希望不超过 8 个字符。
示例:如果刻度恰好是135
(对我来说比现实生活中更多),那么生成的代码将是ACE
或BDF
取决于它是否基于 0(我不在乎是否是)。