C#DataTable:计算列中的平均值
-
21-12-2019 - |
题
我正在尝试在列中获得平均p&l。该列是双倍的,但是我不断出现错误说明:
附加信息:聚合参数中的语法错误:期待具有可能的“子”限定符的单列参数。
这在执行此行时发生:
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));
. 不隶属于 StackOverflow