Ejemplo n.º 1
0
        /// <summary>
        /// 随机获取指定类型的题目num条
        /// </summary>
        /// <param name="questionsType"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public async Task <List <Questions> > GetList(QuestionsTypeEnum questionsType, int num)
        {
            try
            {
                List <int>  idList      = new List <int>();
                DataContext dataContext = new DataContext();
                var         list        = await dataContext.QuestionsDbSet.Where(x => x.QuestionsType == questionsType).Select(x => x.Id).ToListAsync();

                if (list != null)
                {
                    for (int i = 0; i < num; i++)
                    {
                        int times = num;
A:
                        Random random = new Random();
                        var rindex = random.Next(0, list.Count - 1);
                        var id     = list[rindex];
                        if (idList.Contains(id))
                        {
                            if (times > 0)
                            {
                                times--;
                                goto A;
                            }
                        }
                        else
                        {
                            idList.Add(id);
                        }
                    }

                    var qlist = await dataContext.QuestionsDbSet.Where(x => idList.Contains(x.Id)).ToListAsync();

                    return(qlist);
                }
            }
            catch (Exception e)
            {
                ClassLoger.Error("QuestionsDal.GetList", e);
            }
            return(null);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 随机获取指定类型的题目num条
 /// </summary>
 /// <param name="questionsType"></param>
 /// <param name="num"></param>
 /// <returns></returns>
 public async Task <List <Questions> > GetList(QuestionsTypeEnum questionsType, int num)
 {
     return(await QuestionsDal.Ins.GetList(questionsType, num));
 }