我想生成随机数并将其放入数组中,但是它们只能在该数组中出现一次。这就像一个迷你乐透游戏。 这是我现在拥有的代码:
nc -l 6123
生成随机数并将其放入此数组中。我只需要知道如何编程它们只出现一次即可。
答案 0 :(得分:1)
使用HashSet<T>
。集合是不包含重复元素且其元素没有特定顺序的集合。
类似这样的东西:
using System;
using System.Collections.Generic;
HashSet<int> numbers = new HashSet<int>();
for (int i = 0; i < 10; i++)
{
// Start with a random number
//
int value = random.Next(1,15);
// Check whether you already have that number
// Keep trying until you get a unique
//
while (numbers.Contains(value)) {
value = random.Next(1,15);
}
// Add the unique number to the set
numbers.Add(value);
}
foreach (int i in numbers)
{
Console.Write(" {0}", i);
}
答案 1 :(得分:0)
int[] arrA = new int[10];
Random random = new Random();
for (int i = 0; i <= arrA.Length - 1; i++)
{
var number = random.Next(1, 15);
while (arrA.Any(n => n == number))
{
number = random.Next(1, 15);
}
arrA[i] = number;
Console.WriteLine(arrA[i]);
}
Console.ReadKey();
答案 2 :(得分:0)
每次生成一个新数字,而不是立即将其放入数组中,而是从头到当前位置检查数组(使用for循环)。如果不存在,请插入生成的编号,否则生成一个新的编号并重复该过程。