Funkcja agregująca jako parametr

0

Chcę dynamicznie wyliczać średnią lub sumę (podany jako parametr). Czy można wywołać na kolekcji "Average" lub "Sum" poprzez string?

0

Co rozumiesz przez "wywołanie przez string"?
Jeśli dobrze Cię rozumiem, to mechanizm refleksji twoim przyjacielem jest :P

0

Refleksja raczej słabo widzę w tym przypadku..

var test = collection.GroupBy(x => x.costam).Select(f => f.Average(i => i.Column))

I teraz aby parametrycznie raz zrobić Average a innym razem Sum

0
var useAvg = true;
var test = collection.GroupBy(x => x.costam).Select(f => useAvg ? f.Average(i => i.Column) : f.Sum(i => i.Column))
0

Nie po to używa się lambd, żeby jakieś ify do środka wsadzać. ;)

Można np. sparametryzować Expression do wykonania albo samemu je zbudować (nawet na podstawie stringa). Generalnie jaki jest szerszy kontekst tego problemu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0