public List <AverageCounter> GetSortedStorage(EResource res, bool asDemanded) { List <AverageCounter> list = new List <AverageCounter>(); Array resourceValues = Enum.GetValues(typeof(EResource)); foreach (var entry in resourceValues) { EResource resDemanded = (EResource)entry; AverageCounter avg = (asDemanded == false ? GetAverage(res, resDemanded) : GetAverage(resDemanded, res)); if (avg != null) { list.Add(avg); } } list.Sort(delegate(AverageCounter a, AverageCounter b) { return(a.Value.CompareTo(b.Value)); }); // Reverse sorting only if we need the demanded resources if (asDemanded == true) { list.Reverse(); } return(list); }
public AverageCounter GetAverage(EResource res, EResource resDemanded) { string key = AverageCounter.GetKey(res, resDemanded); if (Storage.ContainsKey(key)) { return(Storage[key]); } return(null); }
public double CountAverage(EResource res, EResource resDemanded, double Value) { string key = AverageCounter.GetKey(res, resDemanded); if (!Storage.ContainsKey(key)) { Storage.Add(key, new AverageCounter(res, resDemanded)); } return(Storage[key].Add(Value, UpperBoundaryExclusive, LowerBoundaryExclusive, HistoricalFactor)); }