我正在尝试获取列中的平均损益。该列的类型为 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/