我想創建一個沒有任何重複的隨機數組。生成沒有重複的隨機數組
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的元素我已經嘗試了很多次,但不幸的是我沒有成功。
查找到數組洗牌。 – Matthew
無法標記更多重複項。但有一個愚蠢[這裏](http://stackoverflow.com/questions/13195738/avoiding-random-duplicates)和[這裏](http://stackoverflow.com/questions/14473321/generating-random-unique-values -c-sharp)也[這裏](http://stackoverflow.com/questions/5561742/generate-distinct-random-numbers-in-c-sharp)然後[這裏](http://stackoverflow.com/questions/4299138 /在範圍內產生n個隨機數和唯一數),也可能是其他數十個。 –
爲什麼heck正在將數字轉換爲字符串並返回? ('int.Parse(_randomNumber.ToString())])') –