将整数hashset转换为整数数组

时间:2015-12-01 18:11:20

标签: arrays vb.net hashset

所以我已经制作了一个哈希集 - 你已经猜到了它 - 整数。现在我需要将其转换为数组,因此我可以引用每个数组'cell'并在进程中使用hashset中的值。

目前我像这样添加到hashset:

 While NumbersToRemember.Count < 1
            RandomNumber = Random.Next(2, 6)
            If NumbersToRemember.Add(RandomNumber) then ...

我尝试使用NumbersToRemember.ToArray(),但它没有按预期工作。

有什么建议吗?

注意:请参阅JerryM的评论解决方案。

1 个答案:

答案 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