gpt4 book ai didi

c# - 生成随机的唯一值 C#

转载 作者:IT王子 更新时间:2023-10-29 04:16:04 24 4
gpt4 key购买 nike

我已经搜索了一段时间并一直在努力寻找这个,我试图生成几个随机的、唯一的数字是 C#。我正在使用 System.Random,并且我正在使用 DateTime.Now.Ticks 种子:

public Random a = new Random(DateTime.Now.Ticks.GetHashCode());
private void NewNumber()
{
MyNumber = a.Next(0, 10);
}

我定期调用 NewNumber(),但问题是我经常收到重复的数字。有人建议因为我每次都在声明随机数,它不会产生随机数,所以我把声明放在我的函数之外。有什么建议或比使用 System.Random 更好的方法吗?谢谢

最佳答案

I'm calling NewNumber() regularly, but the problem is I often getrepeated numbers.

Random.Next 不保证数字是唯一的。你的范围也是从 0 到 10,你很可能会得到重复的值。也许您可以设置一个 int 列表,并在检查它是否不包含重复项后在列表中插入随机数。像这样的东西:

public Random a = new Random(); // replace from new Random(DateTime.Now.Ticks.GetHashCode());
// Since similar code is done in default constructor internally
public List<int> randomList = new List<int>();
int MyNumber = 0;
private void NewNumber()
{
MyNumber = a.Next(0, 10);
if (!randomList.Contains(MyNumber))
randomList.Add(MyNumber);
}

关于c# - 生成随机的唯一值 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14473321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com