c# - Data Structure for caching (Key = DateTime, Value = decimal) -


i have function calculates employee hours in day. but, it's slow because considers carry hours , other things.

i figure can optimize caching hours in day , update on change.

i'm looking can do:

set(date,hours) hashoursfor(date) gethoursfor(date) 

what should use this?

i use dictionary, wondering if there not sort of hash way set, get, , contains quickly.

you use dictionary<datetime,int> , cache hours against date, so:

dictionary<datetime,int> dict = new dictionary<datetime,int>();  void set(datetime date, int hours) {     if (dict.contains(date)) dict.remove(date);      dict.add(date.date,hours); }  bool hashoursfordate(datetime date) {     return dict.contains(date.date); }  int gethoursfordate(datetime date) {     return dict[date.date]; }  set(datetime.now,8); 

i normalise date that's date , doesn't care time part, otherwise throw off comparison. i'm assuming have whole hours otherwise might want change int double etc.


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -