C# 数据表 : Computing the average in a column

标签 c# datatable datacolumn

我正在尝试获取列中的平均损益。该列的类型为 double,但是我不断收到以下错误消息:

附加信息:聚合参数中的语法错误:需要一个可能带有“子”限定符的列参数。

这行在执行时发生:

avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");

此外,这里还有一些额外的代码需要说明:

dt.Columns.Add(Columns.FiveSecBeforePnL, typeof(double));

foreach(DataRow row in dt.Rows)
{
  row[Columns.FiveSecBeforePnL] = some value;
}

double avgFiveSbefore;
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");

最佳答案

尝试将列名括在方括号中。

avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");

您也可以使用 LINQ 来做同样的事情:

double avgFiveSbefore = dt.AsEnumerable()
                            .Average(r =>
                                r.Field<double>(Columns.FiveSecBeforePnL));

关于C# 数据表 : Computing the average in a column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22023352/

相关文章:

c# - 在样式表中显示代码

c# - 如何从另一个窗体编辑数据库 C#

javascript - 从自定义打印按钮触发数据表打印

c# - DataTable Select 与 List<T> LINQ 性能

java - 垂直滚动 primefaces 数据表

gridview - 如何从 yii2 的 gridview 页面中删除 glyphicon glyphicon-pencil 或编辑、查看、删除按钮?

.net - 获取 DataColumn 的原始数据格式

c# - 如何使 Web 应用程序项目独立于 IIS Express 和 SQL Server Express?

c# - MemoryStream、XmlTextWriter 和警告 4 CA2202 : Microsoft. 用法

c# - 带有数据源和组合框的数据 GridView