我有以下代码:
public static string ConvertParamToHTMLString(
IEnumerable<GetParm_Result> paramList)
{
foreach (GetParm_Result result in paramList.ToList())
{
...
...
}
}
尝试执行foreach时收到以下消息:
查询的结果不能多次枚举。
我认为ToList()会解决这个问题..
答案 0 :(得分:5)
调用paramList.ToList()
一次并将其放入变量中,然后枚举变量:
var list = paramList.ToList();
foreach(var result in list) ...
foreach(var result in list) ... // No error here
答案 1 :(得分:0)
由于您只显示一次执行,我假设您正在执行查询(使用ToList
,AsEnumerable
或隐式使用foreach
)在致电ConvertParamToHTMLString
之前。如果是这种情况,那么您可以将结果保存在变量中并多次使用它。实际上,由于您的函数已经接受IEnumerable<T>
,因此根本不需要更改该代码!