C#中生成唯一随机数
问题:
C#开发者经常面临生成唯一随机数的挑战。即使使用了System.Random和DateTime.Now.Ticks作为种子,也可能遇到重复数字的问题。您能提出解决这个问题的替代方法吗?
答案:
虽然Random.Next不能保证唯一性,但一个简单的解决方案是维护一个已生成数字的列表。下面的算法演示了如何实现这一点:
<code class="language-csharp">public Random a = new Random(); private List<int> randomList = new List<int>(); int MyNumber = 0; private void NewNumber() { MyNumber = a.Next(0, 10); if (!randomList.Contains(MyNumber)) randomList.Add(MyNumber); }</code>
这段代码初始化一个Random实例(无需GetHashCode调用,因为默认情况下内部已完成)和一个用于存储已生成数字的列表。NewNumber函数生成一个0到9之间的随机数,如果该数不在列表中,则将其添加到列表中,从而确保在给定范围内数字的唯一性。
以上是如何在 C# 中生成唯一的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!