【发布时间】:2015-05-14 12:32:46
【问题描述】:
我正在使用 foreach 循环来计算问题的答案。
它会针对一个问题计算所有答案,但是当它加载下一个问题时,每次都需要一分钟。我怎样才能减少这个时间?
List<Questionnaire> myQuestionnaires = report.Project
.Questionnaires
.Where(q => q.Active)
.ToList<Questionnaire>();
foreach (Questionnaire q in myQuestionnaires)
{
foreach (ItemAnswer a in q.Answers)
{
//possible answers
}
}
【问题讨论】:
-
这里的 for-each 循环正在处理内存中的集合,所以它应该很快!当您调用 .ToList() 方法时,您确定延迟不是在获取问题吗?你的数据存储是什么?你得到了多少结果?
-
这里根本不需要
.ToList,它会让你对集合进行两次迭代。只需将顶部的List<Questionaire>替换为var并删除末尾的ToList。 -
数据存储在 MySQL 上,结果超过 200 个问题
-
您能提供找到可能答案的条件吗?
-
几百条记录是一个小集合。即使您每次都获取所有 regords 并循环它们,这仍然只需要几分之一秒。如果需要将近一分钟的时间,则说明您无法通过更改代码来解决问题。
标签: c# asp.net-mvc-3 loops foreach