我想一次随即出多个不同的随机数
但是因为种子问题没有实现
string a="";
for (int i = 0; i < 10; i++)
{
int seekSeek = unchecked((int)DateTime.Now.Ticks);
Random seekRand = new Random(seekSeek); string temp = seekRand.Next(1000).ToString();
a += temp + "_";
}
this.TextBox1.Text = a;这样不行啊!
各位有没有简洁一点的生成办法
但是因为种子问题没有实现
string a="";
for (int i = 0; i < 10; i++)
{
int seekSeek = unchecked((int)DateTime.Now.Ticks);
Random seekRand = new Random(seekSeek); string temp = seekRand.Next(1000).ToString();
a += temp + "_";
}
this.TextBox1.Text = a;这样不行啊!
各位有没有简洁一点的生成办法
解决方案 »
- C# 程序音量控制
- asp.net 中如何设置session的过期时间
- 多线程中子线程没有结束前关闭窗口的问题
- 宁可等待也不强行退出的自动关机方式是否是EWX_FORCEIFHUNG
- 求教!!!!!!!!!
- asp.net不同目录的页面如何共用一个资源文件
- b/s模式的帮助文档类型?
- visual studio 中怎么才能把几个Textbox控件命名为一个数组啊,使其成为textbox(1),textbox(2)......这样
- if(!returnValue) 和if(false == returnValue)有什么区别
- C#如何做一个类似openfiledialog中的选择目录的那个combobox一样的,可以显示树的comboBox
- 我可重载 MessageBox 不?
- C# 关于TreeView中CheckBox的问题
你next的时候指定个最小值试试。
for (int i = 0; i < 10; i++)
{
int seekSeek = unchecked((int)DateTime.Now.Ticks);
Random seekRand = new Random(seekSeek); string temp = seekRand.Next(seekSeek).ToString();
a += temp + "_";
}
this.TextBox1.Text = a;我看了文章了 我觉得加上红字的就应该好用了
结果还是不行啊?
{
string a = "";
List<int> get_ints = new List<int>();
Random seekRand = new Random(new Guid().GetHashCode());
for (int i = 0; i < 10; i++)
{
//int seekSeek = unchecked((int)DateTime.Now.Ticks);//你想想,循环要多块啊。你实际每一次得到的tick都是一样的,用同一个种子随机出来的,得到的第一次结果当然一样了。
//Random seekRand = new Random(seekSeek);//这里要不得,每次new很慢的,一次十几K内存啊。
int n = seekRand.Next(0, 1000);
while (get_ints.Contains(n)) n = seekRand.Next(0, 1000);//一直获取,重复的就再次获取。
get_ints.Add(n);
textBox1.AppendText(n.ToString("000") + "_");
}
this.textBox2.Text = a;
}
string a = "";
ArrayList list = new ArrayList(10);
while(list.Count<10)
{
int seekSeek = unchecked((int)DateTime.Now.Millisecond);
Random seekRand = new Random(seekSeek); string temp = seekRand.Next(0,1000).ToString();
if (!list.Contains(temp))
{
list.Add(temp);
a += temp + "_";
Console.WriteLine(a);
}
}
Random seekRand = new Random(seekSeek);
for (int i = 0; i < 10; i++)
{
string temp = seekRand.Next(1000).ToString();
a += temp + "_";
}
this.TextBox1.Text = a;
System.Random rnd = new System.Random();
IEnumerable<int> numbers = Enumerable.Range(1, 1000).OrderBy(r => rnd.Next()).Take(10);
List<int> nums = numbers.ToList();
将Random seekRand 作为类的字段定义不会有频繁重复的现象。