-1

我有以下代码:

public static string ConvertParamToHTMLString(
                            IEnumerable<GetParm_Result> paramList)
{
    foreach (GetParm_Result result in paramList.ToList())
    {
      ...
      ...
    }
}

当它尝试执行 foreach 时,我收到以下消息:

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

我认为 ToList() 会解决这个问题..

4

2 回答 2

5

调用paramList.ToList()一次并将其放入变量中,然后枚举变量:

var list = paramList.ToList();
foreach(var result in list) ...
foreach(var result in list) ...   // No error here
于 2013-08-06T20:54:05.693 回答
0

由于您只显示一次执行,我假设ToListAsEnumerableforeach调用ConvertParamToHTMLString. 如果是这种情况,那么您可以将结果保存在变量中并多次使用。事实上,由于您的函数已经接受了,IEnumerable<T>您根本不需要更改该代码!

于 2013-08-06T21:09:15.677 回答