Подсчет среднего значения из элементов словаря - C#
Формулировка задачи:
Доброго времени суток!
Помогите разобраться, так как застрял немного.
Есть словарь:
И есть некий объект:
Свойства объекта могут быть различными. Надо, каким-то образом, в зависимости от свойств объекта, подсчитать среднее арифметическое из словаря. В данном случае (0,8+0,8+0,8)/3. Как бы это можно было реализовать?
Dictionary<string, double> Exp = new Dictionary<string, double>()
{
// кольори
["red"] = 0.8,
["orange"] = 0.8,
["pink"] = 0.8,
["yellow"] = 0.8,
["green"] = 0.8,
["blue"] = 0.8,
["violet"] = 0.8,
["black"] = 0.8,
["brown"] = 0.8,
["white"] = 0.8
...
}public class SomeObject
{
...
// кольори
bool red = true,
orange = false,
yellow = true,
green = false,
blue = false,
violet = false,
black = true,
brown = false,
white = false
...
}Решение задачи: «Подсчет среднего значения из элементов словаря»
textual
Листинг программы
public double Calculate_Motivation(SomeObject a) //підраховуєм мотивацію
{
double sum = 0;
int count = 0;
foreach (var field in a.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic))
if (Exp.ContainsKey(field.Name) && (bool)(field.GetValue(a)) && GlobalVars.IsBool(a))
{
count++;
sum += Exp[field.Name];
}
return (sum / count);
}