C#:产生随机数的数组没有重复 [英] C# : generate array of random number without duplicates

查看:340
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆