将整数哈希集转换为整数数组

Convert integer hashset to a integer array

所以我制作了一个哈希集,其中包含 - 你猜对了 - 整数。现在我需要将它转换成一个数组,这样我就可以引用每个数组 'cell' 并在一个过程中使用哈希集中的值。

目前我像这样添加到哈希集:

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

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

有什么建议吗?

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

甚至没有显示完整的循环,因此很难判断可能发生了什么。 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