如何生成无碰撞在asp.net中随机唯一的16位数字 [英] How to generate random unique 16 digit number in asp.net without collision

查看:478
本文介绍了如何生成无碰撞在asp.net中随机唯一的16位数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何能产生16位唯一的随机数,而不在c#asp.net重演,因为我读的GUID这与数字一起生成字符的概念,但我不想字符

how can i generate 16 digit unique random numbers without any repetition in c# asp.net, as i have read the concept of GUID which generate characters along with numbers but i don't want characters

慈祥的建议是有什么办法acheive它

kindly suggest is there any way to acheive it

推荐答案

您可以使用Random类创建随机数:

You can create a random number using the Random class:

private static Random RNG = new Random();

public string Create16DigitString()
{
  var builder = new StringBuilder();
  while (builder.Length < 16) 
  {
    builder.Append(RNG.Next(10).ToString());
  }
  return builder.ToString();
}

确保不存在冲突,需要你跟踪你有pviously返回$ P $,这实际上是内存泄漏的所有结果(注:我不建议你使用这个 - 所有的previous的跟踪结果是一个坏主意,依靠多达16个字符的随机字符串的熵,如果你想要更多的独特性,增加熵,但我应包括它来显示它是如何的可能的完成)

private static HashSet<string> Results = new HashSet<string>();

public string CreateUnique16DigitString()
{
  var result = Create16DigitString();
  while (!Results.Add(result))
  {
    result = Create16DigitString();
  }

  return result;
}

这篇关于如何生成无碰撞在asp.net中随机唯一的16位数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆