c# - Switch vs dictionary with double keys -


i making unity game (c# 2.0) , first time requires best performance possible. when mission ends, player given amounts of resources depending on time factor held mission object. there 4 resources in total, using 4 16-long switches-on-int (time*1000), 1 switch per resource.

static int resource1reward(double time)  {    int time2 = time*1000;    switch (time2)    {     } } 

looking @ posts decided try using 4 dictionaries.

 dictionary<double, int> resource1dic = new dictionary<double, int>(16);  static int resource1dicreward(double time)  {      return resource1[time];  } 

using stopwatch, saw huge difference between calling (1) 4 methods; , (2) 1 method looked 4 dictionaries.

  1. 10 15 ms
  2. 0 2 ms

the problem still have long static method initializes 4 dictionaries. have same keys (time switch) different values. there better/cleaner way this?

your business logic bit unclear, in regards dictionary object initialization/performance issue, solution below may serve valid alternative. pertinent use-case, can declare dictionary<double, int> shown in following sample c# code snippet:

public static  dictionary<double, int> sampledictionary =new dictionary<double, int>  {      { 3.1, 3},     { 3.14, 3},     { 3.1415, 3},     { 2.72, 2},     { 2.728, 2} }; 

it fast , rather straightforward. hope may help.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -