最佳方法生成0到9之间的三个唯一数字的列表

J86*_*J86 3 c# random while-loop

它基本上都在标题中.这很简单,但我不知道为什么我的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;
}
Run Code Online (Sandbox Code Playgroud)

我的目的摘要:我想要一个整数的列表是的长度为3并在列表中的每个数字是0和9之间,是独一无二的

Jen*_*ens 7

你可以使用一个整洁的LINQ双线

var random = new Random();
return Enumerable.Range(0,10).OrderBy(i => random.NextDouble()).Take(3).ToList();
Run Code Online (Sandbox Code Playgroud)