-7

可能重复:
用 c# 中 0-9 之间的唯一随机数填充数组

我有一个像“page [100]”这样的数组,我想用c#中0-9之间的随机数填充它......我该怎么做?我用了 :

IEnumerable<int> UniqueRandom(int minInclusive, int maxInclusive)
{
    List<int> candidates = new List<int>();
    for (int i = minInclusive; i <= maxInclusive; i++)
    {
        candidates.Add(i);
    }
    Random rnd = new Random();
    while (candidates.Count > 1)
    {
        int index = rnd.Next(candidates.Count);
        yield return candidates[index];
        candidates.RemoveAt(index);
    }
}

这边走 :

int[] page = UniqueRandom(0,9).Take(array size).ToArray();

但它只给了我 9 个唯一的随机数,但我需要更多。我怎么能有一个随机数不相同的数组?

4

3 回答 3

3

怎么样

int[] page = new int[100];
Random rnd = new Random();
for (int i = 0; i < page.Length; ++i)
  page[i] = rnd.Next(10);
于 2012-05-22T06:36:11.810 回答
1
Random r = new Random(); //add some seed
int[] randNums = new int[100]; //100 is just an example
for (int i = 0; i < randNums.Length; i++)
    randNums[i] = r.Next(10);
于 2012-05-22T06:35:21.690 回答
0

您有一个包含 100 个数字的数组,并从包含 10 个不同数字的池中抽取。您如何期望没有重复项?

不要把事情复杂化,只写需要写的东西。IE:

  1. 创建数组
  2. 循环它的大小
  3. 将一个介于 [0, 9] 之间的随机数放入数组中。
于 2012-05-22T06:37:11.063 回答