/// <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); }
/// <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)); }