Подсчет среднего значения из элементов словаря - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д