基本上都在标题中。这很简单,但我不知道为什么我的 While 循环有时会失败。我时不时地会得到一个长度为 2 而不是 3 的列表。

这是我的 C# 代码:

public List<int> generateRequiredSecretCode()
{
    List<int> placeHolder = new List<int>();
    Random random = new Random();
    int randomNo = random.Next(0, 10);
    while (!placeHolder.Contains(randomNo) && placeHolder.Count != 3)
    {
        placeHolder.Add(randomNo);
        randomNo = random.Next(0, 10);
    }
    return placeHolder;
}

我的目标摘要:我想要一个 长度为 3 的整数列表,其中列表中的每个数字都在 0 到 9 之间,并且是 唯一的

最佳答案

!placeHolder.Contains(randomNo) 是你的问题,因为如果列表包含 randomNo,while 就会结束。
如果像这样,请检查内部的 !placeHolder.Contains(randomNo) :

while (placeHolder.Count != 3)
{
    if( !placeHolder.Contains(randomNo) )
      placeHolder.Add(randomNo);
    randomNo = random.Next(0, 10);
}

关于c# - 生成 0 到 9 之间三个唯一数字的列表的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14398165/

10-13 06:55