如何在没有它们的情况下随机化四个数字在c#中是相同的?

时间:2017-01-16 04:21:01

标签: c#

我试图将四个数字随机化而不相同,否则就会破坏我的代码。我能做些什么才能使它们完全相同? 这是我的代码:

Random r = new Random();

_unknown1 = r.Next(1, 8);
_unknown2 = r.Next(1, 8);
_unknown3 = r.Next(1, 8);
_unknown4 = r.Next(1, 8);

2 个答案:

答案 0 :(得分:3)

如果我理解你的问题。你不想重复你的随机数。这可能会为你做到这一点

List<int> randomNumbers = new List<int>(); 
for (int i=0; i<4; i++) 
{    
    int number;
    do 
    {
        number = random.Next(1, 8);
    }
    while (randomNumbers.Contains(number));
    randomNumbers.Add(number);
}

答案 1 :(得分:0)

从随机列表中提取随机数:

Random r = new Random();
var set = Enumerable.Range(1, 8)
                    .OrderBy(x => r.Next())
                    .Take(4)
                    .ToList();

_unknown1 = set[0];
_unknown2 = set[1];
_unknown3 = set[2];
_unknown4 = set[3];