【发布时间】:2012-01-26 23:22:30
【问题描述】:
目前我的程序生成由数字组成的随机 8 个字符串。
见下文
public static string GenerateNewCode()
{
string newCode = String.Empty;
int seed = unchecked(DateTime.Now.Ticks.GetHashCode());
Random random = new Random(seed);
// keep going until we find a unique code
do
{
newCode = random.Next(0, 9999).ToString("0000")
+ random.Next(0, 9999).ToString("0000");
}
while (!ConsumerCode.isUnique(newCode));
// return
return newCode;
}
但是,我希望能够创建 8、9、10、11 和 12 个数字的随机代码。
不确定最有效的方法。
我的想法是创建一个介于 0 到 9 之间的随机数,然后根据所需的代码长度执行 X 次。
必须有一种简单/更有效的方法来做到这一点.....
【问题讨论】:
-
您应该将 Random 实例缓存在某个字段中,并且只创建一次。在方法中创建和丢弃 Random 实例很少是正确的做法。而且您的种子实际上并不比 Random 内部使用的更好。