C#:产生随机数的数组没有重复 [英] C# : generate array of random number without duplicates
本文介绍了C#:产生随机数的数组没有重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使随机数的数组没有任何重复。
I want to make an array of random numbers without any duplicate.
private void SetRandomQuestions()
{
var idS = from t in _db.QuestionsTables
where t.Cat_Id == _catId
select new
{ t.Question_Id };
// to get the questions Id from database table
foreach (var variable in idS)
{
array.Add(variable.Question_Id);
}
// generate a random numbers depends on the array list values
var random = new Random();
for (var i = 0; i < _randomQuestionId.Length; i++)
{
_randomNumber = random.Next(array.Count);
for (var j = 0; j < _randomQuestionId.Length; j++)
{
if (_randomQuestionId[j] != array[int.Parse(_randomNumber.ToString())])
{
_randomQuestionId[i] = array[int.Parse(_randomNumber.ToString())];
j = 5;
}
}
}
}
正如你看到这里我有列表数组问题的ID值,并进一步我创造了另一个数组,从该数组获得4个元素随机。
不过,我的问题是我如何能得到没有任何重复的ID我已经尝试了很多次,但不幸的是我没有与成功的元素。
As you see here I have list array has values of questions id and further I have created another array to get 4 elements randomly from that array. However, my question is how I can get the elements without any duplicate Ids I have tried many times but unfortunately I didn't success with that.
推荐答案
最简单的事情将是洗牌的你的问题ID,然后取第4位。
The simplest thing would be shuffling your question ids and then taking the first four.
Random rnd = new Random();
randomQuestionId = idS.OrderBy(_ => rnd.Next()).Take(4).ToArray();
这篇关于C#:产生随机数的数组没有重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文