在尝试从Dataset获取列时遇到异常“Enumeration已启动或已完成”

时间:2012-05-17 11:43:10

标签: c# linq-to-sql

我正在尝试使用linq过滤数据集。它工作正常

问题:

但是我尝试从中获取列,它给了我异常

枚举尚未开始或已完成。

这是我的代码:

foreach (string columnName in SelectedItems)
                {
                    var Rate = (from dr in ds.Tables[0].AsEnumerable()
                                where dr.Field<double>(columnName) > greater && dr.Field<double>(columnName) < less
                                select new
                                {
                                    rate = dr.Field<double>(columnName)

                                }.rate).ToList();
                    if (Rate.Count > 50)
                    {
                        var avg = Rate.CheckRateValue();

                    }


                    i++;
                }

我在网上搜索并找出dr.Field(columnName)必须单次使用的问题。所以我如何从选择新部分中滑动此代码后从linq查询中获取列。

1 个答案:

答案 0 :(得分:0)

我不确定 是您的实际问题,但您可以尝试:

var rates = (from dr in ds.Tables[0].AsEnumerable()
             let rate = dr.Field<double>(columnName)
             where rate > greater && rate < less
             select rate).ToList();