我正在尝试在列中获得平均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));
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top