数量大概在500W左右,要求不重复并无规律
不知有何办法
不知有何办法
解决方案 »
- gridview 导出excel 迅雷下载时问题 急求解决方法!
- 请大家帮我解决下瓶颈问题,跪谢大家了!!
- 类型转换问题
- 用utf8格式保存csv文件,用excel打开是乱码,并且不按照“,”分割?怎么回事?请高手指教。
- 此 SqlParameterCollection 中未包含带有 ParameterName“RETURNVALUE”的 SqlParameter
- 图像自动变化
- 我想做个网页,连接到SQL数据库,可以显示数据库里某个表的信息,可以添加,修改,删除表记录,请问用什么实现?
- 水晶報表 & DataReader
- 教学帖:教你用简单的方法开发asp.net (二)
- 请教关于使用手机发送短信
- 紧急情况,继续解决
- 如何使页面不显示,只在背后运行
string str = gid.ToString();绝对很随机,绝对不会重复。如果你要指定长度,在ToString后在取SubString就可以了,长度不够就多几个Guid加来。
int i=rand.Next(1, 100);
string str = gid.ToString();
是很好的办法。绝对的不重复
Guid gid = new Guid();
string str = gid.ToString();
实验不成功, 返回的不能直接转换成INT类型, 而且时间很长 5秒 DateTime dt1 = DateTime.Now;
Random a = new Random();
Dictionary<int, bool> dict = new Dictionary<int, bool>(5000000);
while (true)
{
int i = a.Next(0, 100000000);
if (!dict.ContainsKey(i))
{
dict[i] = true;
} if (dict.Count == 5000000)
{
break;
}
} TimeSpan span1 = DateTime.Now.Subtract(dt1);
Console.WriteLine(span1.TotalMilliseconds);采用 Dictionary<int, bool> 和 Random
只需要2秒
int i = a.Next(0, Int32.maxValue);
效果不太显著,在我的电脑上1.3秒
string str = gid.ToString();
也许有很多方法
1.用Guid.NewGuid()产生GUID。2.用DateTime.Ticks,楼上仁兄说了。3.用Random(),不过要设置条件,且较慢。4.还有种方法可以尝试,就是从文本或XML中取出一行数,当然这行数是之前保存好的,这样能节省些资源。(本人没试过)
我测试的Random() 做500万不重复数据 2秒(完全达到楼主的效果)
Response.Write(r.Next(1000000, 4999999).ToString());
{
string a = "0123456789";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++)
{
sb.Append(a[new Random(Guid.NewGuid().GetHashCode()).Next(0, a.Length - 1)]);
} return sb.ToString();
} protected void Button15_Click(object sender, EventArgs e)
{//生成5位随机数
TextBox1.Text = GetNumPwd(5);
}