C# Datatable:A computação em média, em uma coluna
-
21-12-2019 - |
Pergunta
Eu estou tentando obter a média do P&L em uma coluna.A coluna é do tipo double, no entanto, eu recebo um erro dizendo o seguinte:
Informações adicionais:Erro de sintaxe na agregação argumento:Esperando um único argumento de coluna com possível 'Criança' qualifier.
Isto ocorre quando esta linha estiver em execução:
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");
Também, aqui está algum código adicional para esclarecer:
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)", "");
Solução
Tente, colocando o nome da coluna entre colchetes.
avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");
Você também pode usar o LINQ para fazer o mesmo como:
double avgFiveSbefore = dt.AsEnumerable()
.Average(r =>
r.Field<double>(Columns.FiveSecBeforePnL));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow