2

我正在尝试使用 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 查询中获取列。

4

1 回答 1

0

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

var rates = (from dr in ds.Tables[0].AsEnumerable()
             let rate = dr.Field<double>(columnName)
             where rate > greater && rate < less
             select rate).ToList();
于 2012-05-17T12:10:08.337 回答