C# 数据表:计算列中的平均值

kkn*_*uib 2 c# datatable datacolumn

我试图在列中获得平均损益。该列的类型为 double,但我不断收到错误消息,内容如下:

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

执行此行时会发生这种情况:

avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");
Run Code Online (Sandbox Code Playgroud)

另外,这里有一些额外的代码来澄清:

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)", "");
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 5

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

avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");
Run Code Online (Sandbox Code Playgroud)

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

double avgFiveSbefore = dt.AsEnumerable()
                            .Average(r =>
                                r.Field<double>(Columns.FiveSecBeforePnL));
Run Code Online (Sandbox Code Playgroud)