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