C# 为什么在随机数中得到一个零数

标签 c# arrays random

我正在尝试使用随机数创建数组列表。但有时我的结果为零。我不明白为什么。

如果有人能解释一下,我将不胜感激。

int[] number = new int[6];
Random rnd = new Random();
for (int i = 0; i < number.Length; i++)
{
   int random = rnd.Next(1, 26);
   if (!number.Contains(random))
   {
     number[i] = random;
   }
}
foreach (int nr in number)
{
  Console.Write("|" + nr + "|");
}
//results
|6||12||0||22||25||11|

最佳答案

int[] number = new int[6];

此处创建的数字数组默认为 int值即 0

在某些情况下,您的代码存在问题,因为检查
if (!number.Contains(random))

您可以更改您的代码以包含一个循环来保证您的随机数不在数组中。

int[] number = new int[6];
Random rnd = new Random();
for (int i = 0; i < number.Length; i++)
{
   int random = rnd.Next(1, 26);
   while (number.Contains(random))
   {
      random = rnd.Next(1, 26);
   }
   number[i] = random;
}
foreach (int nr in number)
{
  Console.Write("|" + nr + "|");
}

请注意,对于每个新的随机值,我们每次都遍历整个数组以检查它是否存在,因此当前的方法非常耗费性能。您可以使用 as HashSet<int> 来降低性能如果可能的话

关于C# 为什么在随机数中得到一个零数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65438455/

相关文章:

c# - 在 VS 2010 C# .NET Windows 窗体中重现 Microsoft 注册表编辑器 "Edit Binary Value"窗口

c# - 将 USSD 代码发送到 C# 中的调制解调器,并始终返回 ERROR

c# - 如何在代码片段中放置空文字

ios - Swift : How $0 works in Array. forEach?

javascript - 我如何求和所有素数?

c - 如何打印一定范围内的随机值?

c# - 无法在脚手架中向 DI 添加服务

javascript - 每秒更改文本颜色

sql - 为每个用户选择随机的非重复行

javascript - 当我随机化银行变量时,bankMoney 变为 NaN