随机数在数组C#中仅一次

时间:2019-02-21 14:08:59

标签: c# arrays random

我想生成随机数并将其放入数组中,但是它们只能在该数组中出现一次。这就像一个迷你乐透游戏。 这是我现在拥有的代码:

nc -l 6123

生成随机数并将其放入此数组中。我只需要知道如何编程它们只出现一次即可。

3 个答案:

答案 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循环)。如果不存在,请插入生成的编号,否则生成一个新的编号并重复该过程。