LINQ错误:查询结果不能多​​次枚举

时间:2011-11-18 11:09:45

标签: c# .net linq linq-to-sql enumeration


我正在研究一个LINQ函数,我在for循环中使用ToList()。在第一次迭代它工作正常但后来它抛出异常

  

“查询结果不能多​​次枚举。”

示例代码是;

for()
{
     functionCall();
}

functionCall()
{
   var query = <<query logic>>;
   query.ToList();
}

我搜索了很多来解决这个问题,但每个人都在说使用ToList(); 我在ToList()本身上遇到错误。
请帮我解决这个问题。


提前致谢

1 个答案:

答案 0 :(得分:1)

您正在多次评估查询,为什么不重构您的代码..?

// Evaluate the query once
var query = <<query logic>>.ToList();

// Do your loop, passing the evaluated results into the function
for()
{
    functionCall(query);
}

functionCall(query)
{
   //Do whatever you need here
}