【发布时间】:2010-12-29 23:36:11
【问题描述】:
我将测验的结果存储在表格中,我需要找出用户特定测验的所有问题的最新答案 ID(每行都有 id、quizid、questionid、answerid、username 和 datecompleted )。
我已经让它工作了,但它太丑了,我想我会寻求帮助来优化它。我要尽早开始我的新年决心,编写更好的代码! :) 所以如果有人想告诉我如何优化它,将不胜感激!
public List<QuestionResult> GetLatestResult(Guid QuizID, string UserName)
{
List<QuestionResult> quizResult = new List<QuestionResult>();
// first get all question ids for that quiz
var questionIDs = (from q in db.QuizResults
where (q.QuizId == QuizID && q.UserName == UserName)
select q.QuestionId).Distinct();
// then get the most recent answer id for those questions
var results = from r in questionIDs
select (from q in db.QuizResults
where q.QuizId == QuizID
&& q.UserName == UserName
&& q.QuestionId == r
orderby q.DateCompleted descending
select q).Take(1);
foreach (var item in results)
{
foreach (var qr in item)
{
QuestionResult result = new QuestionResult();
result.QuestionId = qr.QuestionId;
result.AnswerId = qr.AnswerId;
quizResult.Add(result);
}
}
return quizResult;
}
它是 C#,linq to sql,如果您需要更多详细信息,请告诉我。
谢谢,
安妮莉
【问题讨论】:
标签: c# linq-to-sql