所以我已经制作了一个哈希集 - 你已经猜到了它 - 整数。现在我需要将其转换为数组,因此我可以引用每个数组'cell'并在进程中使用hashset中的值。
目前我像这样添加到hashset:
While NumbersToRemember.Count < 1
RandomNumber = Random.Next(2, 6)
If NumbersToRemember.Add(RandomNumber) then ...
我尝试使用NumbersToRemember.ToArray()
,但它没有按预期工作。
有什么建议吗?
注意:请参阅JerryM的评论解决方案。
答案 0 :(得分:1)
甚至没有显示完整的循环,因此很难说出可能发生的情况。评论中的it outputs only zeros
表示其他可能有问题。测试:
Dim hs As New HashSet(Of Int32)
Dim temp As Int32
For n As Int32 = 1 To 10
temp = rng.Next(2, 16)
If hs.Contains(temp) = False Then
hs.Add(temp)
End If
Next
Dim nums = hs.ToArray
Console.WriteLine("Vals: {0}", String.Join(", ", hs.ToArray()))
Console.WriteLine("Nums: {0}", String.Join(", ", nums))
输出:
Vals:2,7,14,11,12,10 Nums:2,7,14,11,12,10
很难说你想要做什么,但要在给定范围内获得一小组随机值,这似乎有点简单:
Dim count As Int32 = 6
Dim randvals = Enumerable.Range(2, 16).
OrderBy(Function(x) Rnd.Next()).
Take(count).ToArray()
Console.WriteLine("Rand Vals: {0}", String.Join(", ", randvals))
Rand Vals:2,13,8,6,3,12