C # DataTable: Computación del promedio en una columna
-
21-12-2019 - |
Pregunta
Estoy tratando de obtener el P & L promedio en una columna.La columna es de tipo doble, sin embargo, sigo recibiendo un error al decir lo siguiente:
Información adicional: Error de sintaxis en el argumento agregado: esperando un argumento de una sola columna con el posible calificador 'niño'.
Esto ocurre cuando esta línea está ejecutando:
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");
Además, aquí hay algunos código adicional para aclarar:
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)", "");
Solución
Intente encerrar el nombre de la columna en corchetes.
avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");
También puede usar LINQ para hacer lo mismo como:
double avgFiveSbefore = dt.AsEnumerable()
.Average(r =>
r.Field<double>(Columns.FiveSecBeforePnL));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow