Вопрос

Я пытаюсь получить средний 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