首页 >后端开发 >C++ >如何在 C# 中生成唯一的随机数?

如何在 C# 中生成唯一的随机数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-21 13:21:10143浏览

How Can I Generate Unique Random Numbers in C#?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn