C # Datatable: calculer la moyenne dans une colonne
-
21-12-2019 - |
Question
J'essaie d'obtenir la moyenne p & l dans une colonne.La colonne est de type double, mais je continue à obtenir une erreur en disant ce qui suit:
Informations supplémentaires: Erreur de syntaxe dans l'argument global: Attendez-vous à un argument de colonne unique avec le qualificatif «enfant» possible.
Cela se produit lorsque cette ligne est exécutée:
avgFiveSbefore = (double)dt.Compute("AVG(5sBeforePnL)", "");
Aussi, voici un code supplémentaire pour clarifier:
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)", "");
La solution
Essayez de joindre le nom de la colonne en crochets.
avgFiveSbefore = (double)dt.Compute("AVG([5sBeforePnL])", "");
Vous pouvez également utiliser LINQ pour faire de même comme:
double avgFiveSbefore = dt.AsEnumerable()
.Average(r =>
r.Field<double>(Columns.FiveSecBeforePnL));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow