Random ran = new Random();for (int b = 0; hashtable.Count < int.Parse(button0.Text); b++ )
{
Num = ran.Next(1, int.Parse(button0.Text));
MessageBox.Show(Num.ToString());
if (!hashtable.ContainsValue(Num))
{
MessageBox.Show(Num.ToString());
btn.Text = Num.ToString();
hashtable.Add(btn.Text, btn.Text);
break;
}我把随机生成的数字动态地添加到按钮的TEXT上,可是...数字竟然重复了...
唉,这机子的WIN7启动不了调试模式..只能用打印来看了。
我能知道是我if语句的判断错了...但是我想不通是怎么错了。
等待高手解答!
用List<T>吧
增加键值嘛
然后用来判断键值对应吗?
不知道是我判断条件有问题,还是我的hashtable的没加上数据
Hashtable.ContainsValue //判断HashTable中是否包含指定值
Int32 Num; List<String> list = new List<String>(); while(list.Count < 20)
{
Num = ran.Next(1, 20000);
if (!list.Contains(Num.ToString()))
{
list.Add(Num.ToString());
}
} foreach (String s in list)
Console.WriteLine(s);
可以使用List<String> , 方法Contains 来判断是否有这个元素..
因为我的代码写在事件里面....
所以我每次执行完,不管是hashtable还是List都会被清空...
难怪我一直都判断不上!
谢谢诸位...
我的Hashtable可以用了
也谢谢Peter200694013为我提供了一种新思路,谢谢