我尝试了以下代码来生成随机数,并将其存储在c#中的HashSet中:
class program
{
static void Main(String[] args)
{
Random r=new Random();
HashSet <int> h = new HashSet<int>();
for (int j=0;j<9;++j)
{
h.Add(r.Next(9));
}
int [] array = h.ToArray();
foreach(int i in array)
Console.WriteLine(i);
Console.ReadLine();
}
}
每次执行该程序时,显示的元素数量都不同。由于我使用循环来存储9个值,因此我希望显示9个值,但这种情况没有发生。可能是什么错误?
HashSet
不包含重复项。您的循环运行9
时间,但仅将唯一数字添加到。将HashSet
您的数字直接添加到数组中,您应该会看到显示9个数字。或者使用更大的范围来生成随机数。顺便说一句HashSet
,在for
循环之后,您可以验证多少个这样的数字:
Console.WriteLine(h.Count);
另外,您可以for
像这样更改循环:
for (int j = 0; j < 9; ++j)
{
if(!h.Add(r.Next(9))) j--;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句