将整数哈希集转换为整数数组
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
所以我制作了一个哈希集,其中包含 - 你猜对了 - 整数。现在我需要将它转换成一个数组,这样我就可以引用每个数组 '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